diff --git a/src/compiler.ts b/src/compiler.ts index 1a6ea4ec..c55b6cf4 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -38,11 +38,11 @@ import { getBlockChildCount, getBlockChild, getBlockName, - needsExplicitUnreachable, getLocalGetIndex, - FeatureFlags, isLocalTee, - getLocalSetIndex + getLocalSetIndex, + FeatureFlags, + needsExplicitUnreachable } from "./module"; import { @@ -1780,6 +1780,7 @@ export class Compiler extends DiagnosticEmitter { stmts = new Array(numStatements); stmts.length = 0; } + var module = this.module; var flow = this.currentFlow; for (let i = 0; i < numStatements; ++i) { let stmt = this.compileStatement(statements[i], @@ -1798,8 +1799,8 @@ export class Compiler extends DiagnosticEmitter { default: stmts.push(stmt); case ExpressionId.Nop: } - if (flow.is(FlowFlags.TERMINATES)) { - if (needsExplicitUnreachable(stmt)) stmts.push(this.module.unreachable()); + if (flow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) { + if (needsExplicitUnreachable(stmt)) stmts.push(module.unreachable()); break; } } @@ -1816,7 +1817,7 @@ export class Compiler extends DiagnosticEmitter { this.currentFlow = innerFlow; var stmts = this.compileStatements(statements); - if (!innerFlow.is(FlowFlags.TERMINATES)) this.performAutoreleases(innerFlow, stmts); + if (!innerFlow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) this.performAutoreleases(innerFlow, stmts); innerFlow.freeScopedLocals(); outerFlow.inherit(innerFlow); // TODO: only if not terminated? this.currentFlow = outerFlow; @@ -1846,10 +1847,10 @@ export class Compiler extends DiagnosticEmitter { } var stmts = new Array(); this.performAutoreleases(flow, stmts); - var current: Flow | null = flow.parent; - while (current && current.breakLabel === breakLabel) { - this.performAutoreleases(current, stmts, /* clearFlags */ false); - current = current.parent; + var parent = flow.parent; + while (parent !== null && parent.breakLabel == breakLabel) { + this.performAutoreleases(parent, stmts, /* clearFlags */ false); + parent = parent.parent; } flow.freeScopedLocals(); stmts.push(module.br(breakLabel)); @@ -1934,18 +1935,19 @@ export class Compiler extends DiagnosticEmitter { // (block $break ;; (1) skip if no breaks // (loop $continue ;; (2) skip if skipping (4) + no continues // (...) ;; (3) - // (br_if cond $continue) ;; (4) skip if (3) terminates or always false + // (br_if cond $continue) ;; (4) skip if (3) does not fall through or always false // ) // ) + var fallsThrough = !terminates && !innerFlow.is(FlowFlags.BREAKS); - if (!terminates && !alwaysFalse) { + if (fallsThrough && !alwaysFalse) { // (4) stmts.push(module.br(continueLabel, condExpr)); } var expr = flatten(module, stmts, NativeType.None); - if (!terminates && !alwaysFalse || continues) { + if (fallsThrough && !alwaysFalse || continues) { // (2) expr = module.loop(continueLabel, expr); } - if (breaks) { + if (breaks) { // (1) expr = module.block(breakLabel, [ expr ]); } @@ -2060,6 +2062,7 @@ export class Compiler extends DiagnosticEmitter { // (br $loop) ;; (8) skip if skipping (3) // ) // ) + var fallsThrough = !terminates && !innerFlow.is(FlowFlags.BREAKS); var needsLabel = !alwaysTrue || breaks; var loop = new Array(); @@ -2067,14 +2070,14 @@ export class Compiler extends DiagnosticEmitter { loop.push(module.br(breakLabel, module.unary(UnaryOp.EqzI32, condExpr))); } if (continues) { // (5) - if (stmts.length > 1) { // otherwise lonely continue + if (stmts.length > 1 || getExpressionId(stmts[0]) != ExpressionId.Break) { // otherwise lonely continue loop.push(module.block(continueLabel, stmts)); } } else { for (let i = 0, k = stmts.length; i < k; ++i) loop.push(stmts[i]); } var expr: ExpressionRef; - if (!terminates || continues) { // (3) + if (fallsThrough || continues) { // (3) if (incrExpr) loop.push(incrExpr); // (7) this.performAutoreleases(innerFlow, loop); loop.push(module.br(loopLabel)); // (8) @@ -2148,7 +2151,7 @@ export class Compiler extends DiagnosticEmitter { } else { ifTrueStmts.push(this.compileStatement(ifTrue)); } - if (!ifTrueFlow.is(FlowFlags.TERMINATES)) this.performAutoreleases(ifTrueFlow, ifTrueStmts); + if (!ifTrueFlow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) this.performAutoreleases(ifTrueFlow, ifTrueStmts); ifTrueFlow.freeScopedLocals(); this.currentFlow = outerFlow; @@ -2162,7 +2165,7 @@ export class Compiler extends DiagnosticEmitter { } else { ifFalseStmts.push(this.compileStatement(ifFalse)); } - if (!ifFalseFlow.is(FlowFlags.TERMINATES)) this.performAutoreleases(ifFalseFlow, ifFalseStmts); + if (!ifFalseFlow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) this.performAutoreleases(ifFalseFlow, ifFalseStmts); ifFalseFlow.freeScopedLocals(); this.currentFlow = outerFlow; outerFlow.inheritMutual(ifTrueFlow, ifFalseFlow); @@ -2354,10 +2357,10 @@ export class Compiler extends DiagnosticEmitter { let stmt = this.compileStatement(statements[j]); if (getExpressionId(stmt) != ExpressionId.Nop) { stmts[count++] = stmt; - if (innerFlow.is(FlowFlags.TERMINATES)) { - terminates = true; - break; - } + } + if (innerFlow.isAny(FlowFlags.TERMINATES | FlowFlags.BREAKS)) { + if (innerFlow.is(FlowFlags.TERMINATES)) terminates = true; + break; } } stmts.length = count; @@ -2655,6 +2658,7 @@ export class Compiler extends DiagnosticEmitter { } else { stmts.push(this.compileStatement(statement.statement)); } + var terminates = innerFlow.is(FlowFlags.TERMINATES); // (block $break ;; (1) skip if skipping (3) + no breaks // (loop $continue ;; (2) skip if skipping (5) + no continues @@ -2663,9 +2667,9 @@ export class Compiler extends DiagnosticEmitter { // (br $continue) ;; (5) skip if (4) does not fall through // ) // ) + var fallsThrough = !terminates && !innerFlow.is(FlowFlags.BREAKS); - var terminates = innerFlow.is(FlowFlags.TERMINATES); - if (!terminates) { // (5) + if (fallsThrough) { // (5) this.performAutoreleases(innerFlow, stmts); stmts.push(module.br(continueLabel)); } @@ -2673,7 +2677,7 @@ export class Compiler extends DiagnosticEmitter { stmts.unshift(module.br(breakLabel, module.unary(UnaryOp.EqzI32, condExpr))); } var expr = flatten(module, stmts, NativeType.None); - if (!terminates || innerFlow.isAny(FlowFlags.CONTINUES | FlowFlags.CONDITIONALLY_CONTINUES)) { // (2) + if (fallsThrough || innerFlow.isAny(FlowFlags.CONTINUES | FlowFlags.CONDITIONALLY_CONTINUES)) { // (2) expr = module.loop(continueLabel, expr); } if (!alwaysTrue || innerFlow.isAny(FlowFlags.BREAKS | FlowFlags.CONDITIONALLY_BREAKS)) { // (1) @@ -9065,7 +9069,16 @@ var mangleImportName_elementName: string; export function flatten(module: Module, stmts: ExpressionRef[], type: NativeType): ExpressionRef { var length = stmts.length; if (length == 0) return module.nop(); // usually filtered out again - if (length == 1 && getExpressionType(stmts[0]) == type) return stmts[0]; + if (length == 1) { + let single = stmts[0]; + if (getExpressionType(single) == type) return single; + if (getExpressionId(single) == ExpressionId.Block) { + let count = getBlockChildCount(single); + let children = new Array(count); + for (let i = 0; i < count; ++i) children[i] = getBlockChild(single, i); + return module.block(getBlockName(single), children, type); + } + } return module.block(null, stmts, type == NativeType.Auto ? getExpressionType(stmts[length - 1]) diff --git a/src/glue/js/index.ts b/src/glue/js/index.ts index 03dffbc5..fe8d14e7 100644 --- a/src/glue/js/index.ts +++ b/src/glue/js/index.ts @@ -14,7 +14,11 @@ import "./i64"; import { Module } from "../../module"; Module.prototype.toText = function(this: Module) { - return binaryen.wrapModule(this.ref).emitStackIR(); + // NOTE: Conversion to StackIR can yield conversion artifacts like sequences + // of unreachable statements not actually emitted by the compiler. Optimizing + // StackIR removes these again, but may also suppress useless code emitted by + // the compiler that's then no longer visible in tests. Both not ideal. + return binaryen.wrapModule(this.ref).emitStackIR(/* optimize-stack-ir */ true); }; Module.prototype.toAsmjs = function(this: Module) { diff --git a/tests/binaryen/unreachable-spam.js b/tests/binaryen/unreachable-spam.js new file mode 100644 index 00000000..e5d4b214 --- /dev/null +++ b/tests/binaryen/unreachable-spam.js @@ -0,0 +1,25 @@ +var binaryen = require("binaryen"); + +var mod = new binaryen.Module(); +var funcType = mod.addFunctionType("ii", binaryen.i32, [ binaryen.i32 ]); +mod.addFunction("0", funcType, [], + mod.block(null, [ + mod.loop("continue", + mod.block(null, [ + mod.if( + mod.local.get(0, binaryen.i32), + mod.return(mod.i32.const(1)), + mod.return(mod.i32.const(2)) + ), + mod.unreachable() + ]) + ), + mod.unreachable() + ], binaryen.i32) +); +mod.addExport("0", "0"); + +if (!mod.validate()) + console.log("-> does not validate"); +console.log(mod.emitText()); +console.log(mod.emitStackIR(/*true*/)); // optimize-stack-ir fixes this diff --git a/tests/compiler/abi.untouched.wat b/tests/compiler/abi.untouched.wat index 93d816db..887c65e1 100644 --- a/tests/compiler/abi.untouched.wat +++ b/tests/compiler/abi.untouched.wat @@ -25,171 +25,161 @@ i32.const 0 i32.eqz global.set $abi/condition - block - i32.const 256 - local.set $0 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 32 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - end - block - i32.const 256 - local.set $0 - global.get $abi/condition - if - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.div_s - local.set $0 - else - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 2 - i32.div_s - local.set $0 - end - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 45 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - end - block - i32.const 256 - local.set $0 - global.get $abi/condition - if - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 24 - i32.shr_s - local.set $0 - else - local.get $0 - i32.const 127 - i32.and - local.set $0 - end - local.get $0 - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 58 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - end - block - i32.const 256 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - global.set $abi/y - global.get $abi/y - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 65 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - end - block - i32.const 2 - i32.ctz - local.set $0 - local.get $0 + i32.const 256 + local.set $0 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eqz + i32.eqz + if i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 72 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.clz - local.set $0 - local.get $0 - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 74 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + i32.const 24 + i32.const 32 i32.const 2 - i32.ctz - local.set $1 - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 77 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.clz - local.set $1 - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 79 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + i32.const 256 + local.set $0 + global.get $abi/condition + if + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.div_s + local.set $0 + else + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 2 + i32.div_s + local.set $0 + end + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 45 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 256 + local.set $0 + global.get $abi/condition + if + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 24 + i32.shr_s + local.set $0 + else + local.get $0 + i32.const 127 + i32.and + local.set $0 + end + local.get $0 + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 58 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 256 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + global.set $abi/y + global.get $abi/y + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 65 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.ctz + local.set $0 + local.get $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 72 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.clz + local.set $0 + local.get $0 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 74 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.ctz + local.set $1 + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 77 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.clz + local.set $1 + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 79 + i32.const 2 + call $~lib/builtins/abort + unreachable end ) (func $abi/exported (; 3 ;) (type $FUNCSIG$i) (result i32) diff --git a/tests/compiler/assert-nonnull.optimized.wat b/tests/compiler/assert-nonnull.optimized.wat index ed5bd823..34da49a3 100644 --- a/tests/compiler/assert-nonnull.optimized.wat +++ b/tests/compiler/assert-nonnull.optimized.wat @@ -157,13 +157,11 @@ local.get $0 call_indirect (type $FUNCSIG$i) local.tee $0 - local.set $1 local.get $0 i32.eqz if unreachable end - local.get $1 ) (func $assert-nonnull/testObjFn (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 @@ -180,13 +178,11 @@ i32.load offset=4 call_indirect (type $FUNCSIG$i) local.tee $0 - local.set $1 local.get $0 i32.eqz if unreachable end - local.get $1 ) (func $null (; 15 ;) (type $FUNCSIG$v) nop diff --git a/tests/compiler/assert-nonnull.untouched.wat b/tests/compiler/assert-nonnull.untouched.wat index 252f3cdc..99aed7ec 100644 --- a/tests/compiler/assert-nonnull.untouched.wat +++ b/tests/compiler/assert-nonnull.untouched.wat @@ -104,19 +104,11 @@ i32.load offset=12 i32.ge_u if - block - block - i32.const 24 - i32.const 136 - i32.const 106 - i32.const 45 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 136 + i32.const 106 + i32.const 45 + call $~lib/builtins/abort unreachable end local.get $1 @@ -126,19 +118,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 184 - i32.const 136 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 184 + i32.const 136 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -182,19 +166,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 184 - i32.const 136 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 184 + i32.const 136 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -284,13 +260,11 @@ (func $assert-nonnull/testFn (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - block (result i32) - i32.const 0 - global.set $~lib/argc - local.get $0 - call_indirect (type $FUNCSIG$i) - local.tee $1 - end + i32.const 0 + global.set $~lib/argc + local.get $0 + call_indirect (type $FUNCSIG$i) + local.tee $1 call $~lib/rt/stub/__retain local.set $2 local.get $1 @@ -309,13 +283,11 @@ unreachable end local.set $2 - block (result i32) - i32.const 0 - global.set $~lib/argc - local.get $2 - call_indirect (type $FUNCSIG$i) - local.tee $1 - end + i32.const 0 + global.set $~lib/argc + local.get $2 + call_indirect (type $FUNCSIG$i) + local.tee $1 call $~lib/rt/stub/__retain local.set $3 local.get $1 @@ -325,13 +297,11 @@ (func $assert-nonnull/testRet (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - block (result i32) - i32.const 0 - global.set $~lib/argc - local.get $0 - call_indirect (type $FUNCSIG$i) - local.tee $1 - end + i32.const 0 + global.set $~lib/argc + local.get $0 + call_indirect (type $FUNCSIG$i) + local.tee $1 local.tee $2 if (result i32) local.get $2 @@ -350,14 +320,12 @@ local.get $0 call $~lib/rt/stub/__retain drop - block (result i32) - i32.const 0 - global.set $~lib/argc - local.get $0 - i32.load offset=4 - call_indirect (type $FUNCSIG$i) - local.tee $1 - end + i32.const 0 + global.set $~lib/argc + local.get $0 + i32.load offset=4 + call_indirect (type $FUNCSIG$i) + local.tee $1 call $~lib/rt/stub/__retain local.set $2 local.get $1 @@ -372,14 +340,12 @@ local.get $0 call $~lib/rt/stub/__retain drop - block (result i32) - i32.const 0 - global.set $~lib/argc - local.get $0 - i32.load offset=4 - call_indirect (type $FUNCSIG$i) - local.tee $1 - end + i32.const 0 + global.set $~lib/argc + local.get $0 + i32.load offset=4 + call_indirect (type $FUNCSIG$i) + local.tee $1 local.tee $2 if (result i32) local.get $2 diff --git a/tests/compiler/binary.untouched.wat b/tests/compiler/binary.untouched.wat index 81336ee0..80dd5993 100644 --- a/tests/compiler/binary.untouched.wat +++ b/tests/compiler/binary.untouched.wat @@ -337,7 +337,6 @@ unreachable end unreachable - unreachable end local.get $8 i32.const 1072693248 @@ -1373,7 +1372,6 @@ i32.sub local.set $4 br $continue|0 - unreachable end unreachable end @@ -1690,7 +1688,6 @@ unreachable end unreachable - unreachable end local.get $5 i32.const 1065353216 @@ -2651,7 +2648,6 @@ i64.sub local.set $4 br $continue|0 - unreachable end unreachable end diff --git a/tests/compiler/call-optional.untouched.wat b/tests/compiler/call-optional.untouched.wat index da1f755b..57740d1e 100644 --- a/tests/compiler/call-optional.untouched.wat +++ b/tests/compiler/call-optional.untouched.wat @@ -42,14 +42,12 @@ call $call-optional/opt ) (func $start:call-optional (; 3 ;) (type $FUNCSIG$v) - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 3 - i32.const 0 - i32.const 0 - call $call-optional/opt|trampoline - end + i32.const 1 + global.set $~lib/argc + i32.const 3 + i32.const 0 + i32.const 0 + call $call-optional/opt|trampoline i32.const 0 i32.eq i32.eqz @@ -61,14 +59,12 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 2 - global.set $~lib/argc - i32.const 3 - i32.const 4 - i32.const 0 - call $call-optional/opt|trampoline - end + i32.const 2 + global.set $~lib/argc + i32.const 3 + i32.const 4 + i32.const 0 + call $call-optional/opt|trampoline i32.const 5 i32.eq i32.eqz @@ -95,15 +91,13 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 3 - i32.const 0 - i32.const 0 - global.get $call-optional/optIndirect - call_indirect (type $FUNCSIG$iiii) - end + i32.const 1 + global.set $~lib/argc + i32.const 3 + i32.const 0 + i32.const 0 + global.get $call-optional/optIndirect + call_indirect (type $FUNCSIG$iiii) i32.const 0 i32.eq i32.eqz @@ -115,15 +109,13 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 2 - global.set $~lib/argc - i32.const 3 - i32.const 4 - i32.const 0 - global.get $call-optional/optIndirect - call_indirect (type $FUNCSIG$iiii) - end + i32.const 2 + global.set $~lib/argc + i32.const 3 + i32.const 4 + i32.const 0 + global.get $call-optional/optIndirect + call_indirect (type $FUNCSIG$iiii) i32.const 5 i32.eq i32.eqz @@ -135,15 +127,13 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 3 - global.set $~lib/argc - i32.const 3 - i32.const 4 - i32.const 5 - global.get $call-optional/optIndirect - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + i32.const 3 + i32.const 4 + i32.const 5 + global.get $call-optional/optIndirect + call_indirect (type $FUNCSIG$iiii) i32.const 12 i32.eq i32.eqz diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index 17f181cb..19f45f6b 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -330,9 +330,7 @@ ) (func $call-super/test4 (; 10 ;) (type $FUNCSIG$v) (local $0 i32) - block (result i32) - call $call-super/H#constructor - end + call $call-super/H#constructor local.tee $0 i32.load i32.const 1 @@ -381,9 +379,7 @@ ) (func $call-super/test5 (; 12 ;) (type $FUNCSIG$v) (local $0 i32) - block (result i32) - call $call-super/J#constructor - end + call $call-super/J#constructor local.tee $0 i32.load i32.const 1 diff --git a/tests/compiler/call-super.untouched.wat b/tests/compiler/call-super.untouched.wat index d6d81f87..d0365d64 100644 --- a/tests/compiler/call-super.untouched.wat +++ b/tests/compiler/call-super.untouched.wat @@ -110,21 +110,19 @@ local.get $0 ) (func $call-super/A#constructor (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 3 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 - i32.const 1 - i32.store - local.get $0 + local.get $0 + i32.eqz + if + i32.const 4 + i32.const 3 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 + i32.const 1 + i32.store + local.get $0 i32.load i32.const 1 i32.eq @@ -312,21 +310,19 @@ call $~lib/rt/stub/__release ) (func $call-super/E#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 7 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 - i32.const 1 - i32.store - local.get $0 + local.get $0 + i32.eqz + if + i32.const 4 + i32.const 7 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 + i32.const 1 + i32.store + local.get $0 i32.load i32.const 1 i32.eq diff --git a/tests/compiler/comma.untouched.wat b/tests/compiler/comma.untouched.wat index 331b62d2..7c038e5d 100644 --- a/tests/compiler/comma.untouched.wat +++ b/tests/compiler/comma.untouched.wat @@ -13,19 +13,15 @@ (func $start:comma (; 1 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - block - block (result i32) - global.get $comma/a - local.tee $0 - i32.const 1 - i32.add - global.set $comma/a - local.get $0 - end - global.set $comma/b - global.get $comma/a - drop - end + global.get $comma/a + local.tee $0 + i32.const 1 + i32.add + global.set $comma/a + local.get $0 + global.set $comma/b + global.get $comma/a + drop global.get $comma/a i32.const 1 i32.eq @@ -50,14 +46,12 @@ call $~lib/builtins/abort unreachable end - block - global.get $comma/a - i32.const 1 - i32.add - global.set $comma/a - global.get $comma/a - global.set $comma/b - end + global.get $comma/a + i32.const 1 + i32.add + global.set $comma/a + global.get $comma/a + global.set $comma/b global.get $comma/a i32.const 2 i32.eq @@ -82,19 +76,15 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 0 - global.set $comma/b - global.get $comma/b - end + i32.const 0 + global.set $comma/b + global.get $comma/b global.set $comma/a - block (result i32) - global.get $comma/a - i32.const 1 - i32.add - global.set $comma/a - global.get $comma/a - end + global.get $comma/a + i32.const 1 + i32.add + global.set $comma/a + global.get $comma/a global.set $comma/b global.get $comma/a i32.const 1 @@ -120,17 +110,13 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $comma/a - i32.const 1 - i32.add - global.set $comma/a - block (result i32) - global.get $comma/a - global.set $comma/b - global.get $comma/b - end - end + global.get $comma/a + i32.const 1 + i32.add + global.set $comma/a + global.get $comma/a + global.set $comma/b + global.get $comma/b global.set $comma/a global.get $comma/a i32.const 2 @@ -166,18 +152,15 @@ i32.eqz br_if $break|0 nop - block - global.get $comma/a - i32.const 1 - i32.sub - global.set $comma/a - local.get $1 - i32.const 1 - i32.add - local.set $1 - end + global.get $comma/a + i32.const 1 + i32.sub + global.set $comma/a + local.get $1 + i32.const 1 + i32.add + local.set $1 br $loop|0 - unreachable end unreachable end @@ -193,14 +176,12 @@ call $~lib/builtins/abort unreachable end - block - i32.const 1 - drop - i32.const 2 - drop - i32.const 3 - drop - end + i32.const 1 + drop + i32.const 2 + drop + i32.const 3 + drop ) (func $start (; 2 ;) (type $FUNCSIG$v) call $start:comma diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index 3e80c484..4fac0d0a 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -154,17 +154,15 @@ global.set $constructor/ctorAllocates i32.const 0 local.set $0 - block (result i32) - global.get $constructor/b - if - i32.const 0 - i32.const 12 - call $~lib/rt/stub/__alloc - local.set $0 - end - local.get $0 - i32.eqz + global.get $constructor/b + if + i32.const 0 + i32.const 12 + call $~lib/rt/stub/__alloc + local.set $0 end + local.get $0 + i32.eqz if i32.const 0 i32.const 12 diff --git a/tests/compiler/constructor.untouched.wat b/tests/compiler/constructor.untouched.wat index c9e07820..1ae5687c 100644 --- a/tests/compiler/constructor.untouched.wat +++ b/tests/compiler/constructor.untouched.wat @@ -223,36 +223,32 @@ local.get $0 ) (func $constructor/CtorAllocates#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 11 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 11 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 drop local.get $0 ) (func $constructor/CtorConditionallyAllocates#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) global.get $constructor/b if - block (result i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 12 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 12 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 drop end local.get $0 diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat index 31eefbea..dada59c3 100644 --- a/tests/compiler/do.untouched.wat +++ b/tests/compiler/do.untouched.wat @@ -53,14 +53,12 @@ global.set $do/n loop $continue|1 nop - block (result i32) - global.get $do/n - local.tee $0 - i32.const 1 - i32.sub - global.set $do/n - local.get $0 - end + global.get $do/n + local.tee $0 + i32.const 1 + i32.sub + global.set $do/n + local.get $0 br_if $continue|1 end global.get $do/n diff --git a/tests/compiler/empty.json b/tests/compiler/empty.json index 8ee35e6e..fc976a8b 100644 --- a/tests/compiler/empty.json +++ b/tests/compiler/empty.json @@ -1,6 +1,6 @@ { "asc_flags": [ - "--runtime half", + "--runtime none", "--use ASC_RTRACE=1" ] } diff --git a/tests/compiler/exports.untouched.wat b/tests/compiler/exports.untouched.wat index 1284679a..437afdba 100644 --- a/tests/compiler/exports.untouched.wat +++ b/tests/compiler/exports.untouched.wat @@ -164,21 +164,19 @@ local.get $0 ) (func $exports/Car#constructor (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 3 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 - local.get $1 - i32.store - local.get $0 + local.get $0 + i32.eqz + if + i32.const 4 + i32.const 3 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 + local.get $1 + i32.store + local.get $0 local.get $1 i32.store local.get $0 @@ -199,21 +197,19 @@ global.get $exports/vehicles.Car.TIRES ) (func $exports/vehicles.Car#constructor (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 4 - i32.const 4 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 - local.get $1 - i32.store - local.get $0 + local.get $0 + i32.eqz + if + i32.const 4 + i32.const 4 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 + local.get $1 + i32.store + local.get $0 local.get $1 i32.store local.get $0 diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 35d5ba51..39454bff 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -134,6 +134,12 @@ i32.const 10 i32.ge_s br_if $break|7 + block $continue|7 + local.get $0 + local.get $1 + i32.eq + br_if $continue|7 + end local.get $1 i32.const 1 i32.add diff --git a/tests/compiler/for.untouched.wat b/tests/compiler/for.untouched.wat index 1e28ab74..dad71958 100644 --- a/tests/compiler/for.untouched.wat +++ b/tests/compiler/for.untouched.wat @@ -28,7 +28,6 @@ i32.add global.set $for/i br $loop|0 - unreachable end unreachable end @@ -58,7 +57,6 @@ i32.add local.set $0 br $loop|1 - unreachable end unreachable end @@ -75,7 +73,6 @@ i32.sub global.set $for/i br $loop|2 - unreachable end unreachable end @@ -97,41 +94,29 @@ i32.const 10 i32.eq if - block - br $break|3 - unreachable - end - unreachable + br $break|3 end global.get $for/i i32.const 1 i32.add global.set $for/i br $loop|3 - unreachable end unreachable end block $break|4 loop $loop|4 - block (result i32) - global.get $for/i - i32.const 1 - i32.sub - global.set $for/i - global.get $for/i - end + global.get $for/i + i32.const 1 + i32.sub + global.set $for/i + global.get $for/i i32.const 0 i32.eq if - block - br $break|4 - unreachable - end - unreachable + br $break|4 end br $loop|4 - unreachable end unreachable end @@ -144,12 +129,14 @@ i32.lt_s i32.eqz br_if $break|5 + block $continue|5 + br $continue|5 + end local.get $1 i32.const 1 i32.add local.set $1 br $loop|5 - unreachable end unreachable end @@ -183,12 +170,19 @@ i32.lt_s i32.eqz br_if $break|7 + block $continue|7 + local.get $2 + local.get $3 + i32.eq + if + br $continue|7 + end + end local.get $3 i32.const 1 i32.add local.set $3 br $loop|7 - unreachable end unreachable end @@ -197,7 +191,6 @@ i32.add local.set $2 br $loop|6 - unreachable end unreachable end diff --git a/tests/compiler/function-expression.untouched.wat b/tests/compiler/function-expression.untouched.wat index c5751357..77547bfb 100644 --- a/tests/compiler/function-expression.untouched.wat +++ b/tests/compiler/function-expression.untouched.wat @@ -68,13 +68,11 @@ i32.const 10 ) (func $start:function-expression (; 15 ;) (type $FUNCSIG$v) - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 1 - global.get $function-expression/f1 - call_indirect (type $FUNCSIG$ii) - end + i32.const 1 + global.set $~lib/argc + i32.const 1 + global.get $function-expression/f1 + call_indirect (type $FUNCSIG$ii) i32.const 1 i32.eq i32.eqz @@ -86,13 +84,11 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 2 - global.get $function-expression/f2 - call_indirect (type $FUNCSIG$ii) - end + i32.const 1 + global.set $~lib/argc + i32.const 2 + global.get $function-expression/f2 + call_indirect (type $FUNCSIG$ii) i32.const 2 i32.eq i32.eqz @@ -104,18 +100,14 @@ call $~lib/builtins/abort unreachable end - block - i32.const 0 - global.set $~lib/argc - global.get $function-expression/f3 - call_indirect (type $FUNCSIG$v) - end - block (result i32) - i32.const 0 - global.set $~lib/argc - global.get $function-expression/f4 - call_indirect (type $FUNCSIG$i) - end + i32.const 0 + global.set $~lib/argc + global.get $function-expression/f3 + call_indirect (type $FUNCSIG$v) + i32.const 0 + global.set $~lib/argc + global.get $function-expression/f4 + call_indirect (type $FUNCSIG$i) i32.const 1 i32.eq i32.eqz @@ -166,14 +158,12 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 2 - global.set $~lib/argc - i32.const 1 - i32.const 2 - call $function-expression/testOmittedReturn1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + i32.const 1 + i32.const 2 + call $function-expression/testOmittedReturn1 + call_indirect (type $FUNCSIG$iii) i32.const 3 i32.eq i32.eqz @@ -185,14 +175,12 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 2 - global.set $~lib/argc - i32.const 1 - i32.const 2 - call $function-expression/testOmittedReturn2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + i32.const 1 + i32.const 2 + call $function-expression/testOmittedReturn2 + call_indirect (type $FUNCSIG$iii) i32.const 1 i32.eq i32.eqz @@ -204,14 +192,12 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 2 - global.set $~lib/argc - i32.const 1 - i32.const 2 - call $function-expression/testOmittedReturn3 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + i32.const 1 + i32.const 2 + call $function-expression/testOmittedReturn3 + call_indirect (type $FUNCSIG$iii) i32.const 42 i32.eq i32.eqz diff --git a/tests/compiler/function-types.untouched.wat b/tests/compiler/function-types.untouched.wat index a02dbe06..62d37d5c 100644 --- a/tests/compiler/function-types.untouched.wat +++ b/tests/compiler/function-types.untouched.wat @@ -91,14 +91,12 @@ (func $start:function-types (; 12 ;) (type $FUNCSIG$v) call $function-types/makeAdder global.set $function-types/i32Adder - block (result i32) - i32.const 2 - global.set $~lib/argc - i32.const 1 - i32.const 2 - global.get $function-types/i32Adder - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + i32.const 1 + i32.const 2 + global.get $function-types/i32Adder + call_indirect (type $FUNCSIG$iii) i32.const 3 i32.eq i32.eqz @@ -112,14 +110,12 @@ end call $function-types/makeAdder global.set $function-types/i64Adder - block (result i64) - i32.const 2 - global.set $~lib/argc - i64.const 10 - i64.const 20 - global.get $function-types/i64Adder - call_indirect (type $FUNCSIG$jjj) - end + i32.const 2 + global.set $~lib/argc + i64.const 10 + i64.const 20 + global.get $function-types/i64Adder + call_indirect (type $FUNCSIG$jjj) i64.const 30 i64.eq i32.eqz @@ -131,14 +127,12 @@ call $~lib/builtins/abort unreachable end - block (result f64) - i32.const 2 - global.set $~lib/argc - f64.const 1.5 - f64.const 2.5 - call $function-types/makeAdder - call_indirect (type $FUNCSIG$ddd) - end + i32.const 2 + global.set $~lib/argc + f64.const 1.5 + f64.const 2.5 + call $function-types/makeAdder + call_indirect (type $FUNCSIG$ddd) f64.const 4 f64.eq i32.eqz @@ -194,14 +188,12 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 2 - global.set $~lib/argc - i32.const 1 - i32.const 2 - i32.const 0 - call $function-types/makeAndAdd|trampoline - end + i32.const 2 + global.set $~lib/argc + i32.const 1 + i32.const 2 + i32.const 0 + call $function-types/makeAndAdd|trampoline i32.const 3 i32.eq i32.eqz diff --git a/tests/compiler/getter-call.untouched.wat b/tests/compiler/getter-call.untouched.wat index fa86224e..7aa2b4fb 100644 --- a/tests/compiler/getter-call.untouched.wat +++ b/tests/compiler/getter-call.untouched.wat @@ -136,13 +136,11 @@ i32.const 0 call $getter-call/C#constructor local.set $0 - block (result i32) - i32.const 0 - global.set $~lib/argc - local.get $0 - call $getter-call/C#get:x - call_indirect (type $FUNCSIG$i) - end + i32.const 0 + global.set $~lib/argc + local.get $0 + call $getter-call/C#get:x + call_indirect (type $FUNCSIG$i) local.set $1 local.get $0 call $~lib/rt/stub/__release diff --git a/tests/compiler/getter-setter.untouched.wat b/tests/compiler/getter-setter.untouched.wat index e6322ce2..a31ef8ab 100644 --- a/tests/compiler/getter-setter.untouched.wat +++ b/tests/compiler/getter-setter.untouched.wat @@ -45,11 +45,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 2 - call $getter-setter/Foo.bar.set:bar - call $getter-setter/Foo.bar.get:bar - end + i32.const 2 + call $getter-setter/Foo.bar.set:bar + call $getter-setter/Foo.bar.get:bar i32.const 2 i32.eq i32.eqz diff --git a/tests/compiler/if.untouched.wat b/tests/compiler/if.untouched.wat index f86d84d1..f65292c6 100644 --- a/tests/compiler/if.untouched.wat +++ b/tests/compiler/if.untouched.wat @@ -24,7 +24,6 @@ return end unreachable - unreachable ) (func $if/ifThen (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 @@ -44,7 +43,6 @@ return end unreachable - unreachable ) (func $start:if (; 4 ;) (type $FUNCSIG$v) i32.const 0 @@ -132,23 +130,14 @@ i32.const 1 return else - block - block - i32.const 56 - i32.const 24 - i32.const 37 - i32.const 4 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 56 + i32.const 24 + i32.const 37 + i32.const 4 + call $~lib/builtins/abort unreachable end unreachable - unreachable ) (func $start (; 6 ;) (type $FUNCSIG$v) call $start:if diff --git a/tests/compiler/infer-type.untouched.wat b/tests/compiler/infer-type.untouched.wat index 4e501206..215e6626 100644 --- a/tests/compiler/infer-type.untouched.wat +++ b/tests/compiler/infer-type.untouched.wat @@ -80,12 +80,10 @@ global.get $infer-type/rF drop block $break|0 - block - i32.const 0 - local.set $0 - i32.const 10 - local.set $1 - end + i32.const 0 + local.set $0 + i32.const 10 + local.set $1 loop $loop|0 local.get $0 local.get $1 @@ -97,7 +95,6 @@ i32.add local.set $0 br $loop|0 - unreachable end unreachable end diff --git a/tests/compiler/inlining-blocklocals.untouched.wat b/tests/compiler/inlining-blocklocals.untouched.wat index 7f265c36..6330ed8b 100644 --- a/tests/compiler/inlining-blocklocals.untouched.wat +++ b/tests/compiler/inlining-blocklocals.untouched.wat @@ -19,37 +19,31 @@ (local $3 i32) i32.const 1 local.set $0 - block $inlining-blocklocals/theCall|inlined.0 - block (result i32) - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $1 - end - local.set $3 - block (result i32) - global.get $inlining-blocklocals/b - local.tee $1 - i32.const 1 - i32.add - global.set $inlining-blocklocals/b - local.get $1 - end - local.set $2 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.set $1 - local.get $3 - global.set $inlining-blocklocals/theCall_a - local.get $2 - global.set $inlining-blocklocals/theCall_b - local.get $1 - global.set $inlining-blocklocals/theCall_c - end + local.get $0 + local.tee $1 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.set $3 + global.get $inlining-blocklocals/b + local.tee $1 + i32.const 1 + i32.add + global.set $inlining-blocklocals/b + local.get $1 + local.set $2 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + local.set $1 + local.get $3 + global.set $inlining-blocklocals/theCall_a + local.get $2 + global.set $inlining-blocklocals/theCall_b + local.get $1 + global.set $inlining-blocklocals/theCall_c global.get $inlining-blocklocals/theCall_a i32.const 1 i32.eq diff --git a/tests/compiler/inlining-recursive.untouched.wat b/tests/compiler/inlining-recursive.untouched.wat index c8f5c4fa..4cc3e73c 100644 --- a/tests/compiler/inlining-recursive.untouched.wat +++ b/tests/compiler/inlining-recursive.untouched.wat @@ -14,9 +14,7 @@ call $inlining-recursive/bar ) (func $inlining-recursive/bar (; 2 ;) (type $FUNCSIG$v) - block $inlining-recursive/bar|inlined.0 - call $inlining-recursive/baz - end + call $inlining-recursive/baz ) (func $null (; 3 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/inlining.untouched.wat b/tests/compiler/inlining.untouched.wat index 986f76a3..a7fe2b0a 100644 --- a/tests/compiler/inlining.untouched.wat +++ b/tests/compiler/inlining.untouched.wat @@ -135,11 +135,9 @@ call $~lib/builtins/abort unreachable end - block $inlining/func_ii_opt|inlined.0 (result i32) - i32.const 0 - local.set $2 - local.get $2 - end + i32.const 0 + local.set $2 + local.get $2 i32.const 0 i32.eq i32.eqz @@ -151,11 +149,9 @@ call $~lib/builtins/abort unreachable end - block $inlining/func_ii_opt|inlined.1 (result i32) - i32.const 1 - local.set $2 - local.get $2 - end + i32.const 1 + local.set $2 + local.get $2 i32.const 1 i32.eq i32.eqz @@ -167,21 +163,19 @@ call $~lib/builtins/abort unreachable end - block $inlining/func_ii_loc|inlined.0 (result i32) - i32.const 2 - local.set $2 - local.get $2 - local.set $3 - local.get $3 - local.set $5 - local.get $5 - local.set $6 - local.get $6 - i32.const 1 - i32.add - local.set $4 - local.get $4 - end + i32.const 2 + local.set $2 + local.get $2 + local.set $3 + local.get $3 + local.set $5 + local.get $5 + local.set $6 + local.get $6 + i32.const 1 + i32.add + local.set $4 + local.get $4 i32.const 3 i32.eq i32.eqz @@ -193,21 +187,19 @@ call $~lib/builtins/abort unreachable end - block $inlining/func_ii_loc|inlined.1 (result i32) - i32.const 3 - local.set $5 - local.get $5 - local.set $4 - local.get $4 - local.set $2 - local.get $2 - local.set $6 - local.get $6 - i32.const 1 - i32.add - local.set $3 - local.get $3 - end + i32.const 3 + local.set $5 + local.get $5 + local.set $4 + local.get $4 + local.set $2 + local.get $2 + local.set $6 + local.get $6 + i32.const 1 + i32.add + local.set $3 + local.get $3 i32.const 4 i32.eq i32.eqz @@ -219,19 +211,13 @@ call $~lib/builtins/abort unreachable end - block $inlining/func_iv|inlined.0 - i32.const 0 - local.set $2 - end - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 2 - block $inlining/func_fe|inlined.0 (result i32) - i32.const 1 - end - call_indirect (type $FUNCSIG$ii) - end + i32.const 0 + local.set $2 + i32.const 1 + global.set $~lib/argc + i32.const 2 + i32.const 1 + call_indirect (type $FUNCSIG$ii) i32.const 2 i32.eq i32.eqz @@ -243,15 +229,13 @@ call $~lib/builtins/abort unreachable end - block $inlining/Foo.method_static|inlined.0 (result i32) - i32.const 42 - local.set $6 - i32.const 2 - local.set $2 - local.get $6 - local.get $2 - i32.add - end + i32.const 42 + local.set $6 + i32.const 2 + local.set $2 + local.get $6 + local.get $2 + i32.add i32.const 44 i32.eq i32.eqz @@ -266,16 +250,14 @@ i32.const 123 call $~lib/rt/stub/__retain local.set $7 - block $inlining/Foo#method_this|inlined.0 (result i32) - local.get $7 - local.set $4 - i32.const 43 - local.set $5 - i32.const 3 - local.set $2 - local.get $4 - call $~lib/rt/stub/__retain - end + local.get $7 + local.set $4 + i32.const 43 + local.set $5 + i32.const 3 + local.set $2 + local.get $4 + call $~lib/rt/stub/__retain local.tee $2 i32.const 123 i32.eq @@ -391,58 +373,52 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $inlining/Bar#constructor|inlined.0 (result i32) - i32.const 0 - local.set $1 - i32.const 4 - local.set $0 - block $inlining/Baz#constructor|inlined.0 (result i32) - local.get $1 - if (result i32) - local.get $1 - else - i32.const 16 - i32.const 5 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - end - local.set $3 - i32.const 2 - local.set $2 - block (result i32) - local.get $3 - i32.eqz - if - i32.const 8 - i32.const 4 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $3 - end - local.get $3 - i32.const 1 - i32.store - local.get $3 - i32.const 0 - i32.store offset=4 - local.get $3 - end - local.get $2 - i32.store offset=4 - local.get $3 - end - local.set $1 - local.get $1 - i32.const 3 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=12 + i32.const 0 + local.set $1 + i32.const 4 + local.set $0 + local.get $1 + if (result i32) local.get $1 + else + i32.const 16 + i32.const 5 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain end + local.set $3 + i32.const 2 + local.set $2 + local.get $3 + i32.eqz + if + i32.const 8 + i32.const 4 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $3 + end + local.get $3 + i32.const 1 + i32.store + local.get $3 + i32.const 0 + i32.store offset=4 + local.get $3 + local.get $2 + i32.store offset=4 + local.get $3 + local.set $1 + local.get $1 + i32.const 3 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 local.set $4 local.get $4 i32.load diff --git a/tests/compiler/instanceof.untouched.wat b/tests/compiler/instanceof.untouched.wat index 89144264..7136f6e1 100644 --- a/tests/compiler/instanceof.untouched.wat +++ b/tests/compiler/instanceof.untouched.wat @@ -19,11 +19,9 @@ (export "memory" (memory $0)) (start $start) (func $instanceof/isI32 (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - drop - i32.const 1 - end + local.get $0 + drop + i32.const 1 if i32.const 1 return @@ -32,14 +30,11 @@ return end unreachable - unreachable ) (func $instanceof/isI32 (; 2 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return @@ -48,14 +43,11 @@ return end unreachable - unreachable ) (func $instanceof/isI32 (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return @@ -64,14 +56,11 @@ return end unreachable - unreachable ) (func $instanceof/isI32 (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return @@ -80,7 +69,6 @@ return end unreachable - unreachable ) (func $~lib/rt/stub/__retain (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 @@ -91,11 +79,9 @@ (func $start:instanceof (; 7 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - block (result i32) - global.get $instanceof/a - drop - i32.const 1 - end + global.get $instanceof/a + drop + i32.const 1 i32.eqz if i32.const 0 @@ -105,11 +91,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/b - drop - i32.const 1 - end + global.get $instanceof/b + drop + i32.const 1 i32.eqz if i32.const 0 @@ -119,11 +103,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/i - drop - i32.const 0 - end + global.get $instanceof/i + drop + i32.const 0 i32.eqz i32.eqz if @@ -134,11 +116,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/I - drop - i32.const 0 - end + global.get $instanceof/I + drop + i32.const 0 i32.eqz i32.eqz if @@ -149,11 +129,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/f - drop - i32.const 0 - end + global.get $instanceof/f + drop + i32.const 0 i32.eqz i32.eqz if @@ -164,11 +142,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/F - drop - i32.const 0 - end + global.get $instanceof/F + drop + i32.const 0 i32.eqz i32.eqz if @@ -179,11 +155,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/b - drop - i32.const 1 - end + global.get $instanceof/b + drop + i32.const 1 i32.eqz if i32.const 0 @@ -193,11 +167,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/i - drop - i32.const 0 - end + global.get $instanceof/i + drop + i32.const 0 i32.eqz i32.eqz if @@ -208,11 +180,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/I - drop - i32.const 0 - end + global.get $instanceof/I + drop + i32.const 0 i32.eqz i32.eqz if @@ -223,11 +193,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/f - drop - i32.const 0 - end + global.get $instanceof/f + drop + i32.const 0 i32.eqz i32.eqz if @@ -238,11 +206,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/F - drop - i32.const 0 - end + global.get $instanceof/F + drop + i32.const 0 i32.eqz i32.eqz if @@ -253,11 +219,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/a - drop - i32.const 0 - end + global.get $instanceof/a + drop + i32.const 0 i32.eqz i32.eqz if @@ -268,11 +232,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/b - drop - i32.const 0 - end + global.get $instanceof/b + drop + i32.const 0 i32.eqz i32.eqz if @@ -283,11 +245,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/i - drop - i32.const 1 - end + global.get $instanceof/i + drop + i32.const 1 i32.eqz if i32.const 0 @@ -297,11 +257,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/I - drop - i32.const 0 - end + global.get $instanceof/I + drop + i32.const 0 i32.eqz i32.eqz if @@ -312,11 +270,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/f - drop - i32.const 0 - end + global.get $instanceof/f + drop + i32.const 0 i32.eqz i32.eqz if @@ -327,11 +283,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/F - drop - i32.const 0 - end + global.get $instanceof/F + drop + i32.const 0 i32.eqz i32.eqz if @@ -342,11 +296,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/a - drop - i32.const 0 - end + global.get $instanceof/a + drop + i32.const 0 i32.eqz i32.eqz if @@ -357,11 +309,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/b - drop - i32.const 0 - end + global.get $instanceof/b + drop + i32.const 0 i32.eqz i32.eqz if @@ -372,11 +322,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/i - drop - i32.const 0 - end + global.get $instanceof/i + drop + i32.const 0 i32.eqz i32.eqz if @@ -387,11 +335,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/I - drop - i32.const 1 - end + global.get $instanceof/I + drop + i32.const 1 i32.eqz if i32.const 0 @@ -401,11 +347,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/f - drop - i32.const 0 - end + global.get $instanceof/f + drop + i32.const 0 i32.eqz i32.eqz if @@ -416,11 +360,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/F - drop - i32.const 0 - end + global.get $instanceof/F + drop + i32.const 0 i32.eqz i32.eqz if @@ -431,11 +373,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/a - drop - i32.const 0 - end + global.get $instanceof/a + drop + i32.const 0 i32.eqz i32.eqz if @@ -446,11 +386,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/b - drop - i32.const 0 - end + global.get $instanceof/b + drop + i32.const 0 i32.eqz i32.eqz if @@ -461,11 +399,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/i - drop - i32.const 0 - end + global.get $instanceof/i + drop + i32.const 0 i32.eqz i32.eqz if @@ -476,11 +412,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/I - drop - i32.const 0 - end + global.get $instanceof/I + drop + i32.const 0 i32.eqz i32.eqz if @@ -491,11 +425,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/f - drop - i32.const 1 - end + global.get $instanceof/f + drop + i32.const 1 i32.eqz if i32.const 0 @@ -505,11 +437,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/F - drop - i32.const 0 - end + global.get $instanceof/F + drop + i32.const 0 i32.eqz i32.eqz if @@ -520,11 +450,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/a - drop - i32.const 0 - end + global.get $instanceof/a + drop + i32.const 0 i32.eqz i32.eqz if @@ -535,11 +463,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/b - drop - i32.const 0 - end + global.get $instanceof/b + drop + i32.const 0 i32.eqz i32.eqz if @@ -550,11 +476,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/i - drop - i32.const 0 - end + global.get $instanceof/i + drop + i32.const 0 i32.eqz i32.eqz if @@ -565,11 +489,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/I - drop - i32.const 0 - end + global.get $instanceof/I + drop + i32.const 0 i32.eqz i32.eqz if @@ -580,11 +502,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/f - drop - i32.const 0 - end + global.get $instanceof/f + drop + i32.const 0 i32.eqz i32.eqz if @@ -595,11 +515,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/F - drop - i32.const 1 - end + global.get $instanceof/F + drop + i32.const 1 i32.eqz if i32.const 0 @@ -669,11 +587,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/an - drop - i32.const 1 - end + global.get $instanceof/an + drop + i32.const 1 i32.eqz if i32.const 0 @@ -683,21 +599,19 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 1 - local.tee $0 - global.get $instanceof/an - local.tee $1 - i32.ne - if - local.get $0 - call $~lib/rt/stub/__retain - drop - local.get $1 - call $~lib/rt/stub/__release - end + i32.const 1 + local.tee $0 + global.get $instanceof/an + local.tee $1 + i32.ne + if local.get $0 + call $~lib/rt/stub/__retain + drop + local.get $1 + call $~lib/rt/stub/__release end + local.get $0 global.set $instanceof/an global.get $instanceof/an i32.const 0 @@ -711,11 +625,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $instanceof/an - drop - i32.const 1 - end + global.get $instanceof/an + drop + i32.const 1 i32.eqz if i32.const 0 diff --git a/tests/compiler/logical.untouched.wat b/tests/compiler/logical.untouched.wat index e4115bc6..91f581db 100644 --- a/tests/compiler/logical.untouched.wat +++ b/tests/compiler/logical.untouched.wat @@ -25,8 +25,6 @@ f64.ne if (result i32) unreachable - f64.const 0 - unreachable else i32.const 0 end @@ -45,8 +43,6 @@ i32.const 1 else unreachable - f64.const 0 - unreachable end drop i32.const 1 @@ -75,8 +71,6 @@ i32.const 1 else unreachable - f64.const 0 - unreachable end drop i32.const 1 diff --git a/tests/compiler/loop-flow.optimized.wat b/tests/compiler/loop-flow.optimized.wat index c2cefb58..c553dfa2 100644 --- a/tests/compiler/loop-flow.optimized.wat +++ b/tests/compiler/loop-flow.optimized.wat @@ -5,8 +5,8 @@ (type $FUNCSIG$v (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) - (data (i32.const 8) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m") - (data (i32.const 32) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s") + (data (i32.const 8) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s") + (data (i32.const 48) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m") (export "memory" (memory $0)) (export "whileReturn" (func $loop-flow/whileReturn)) (export "whileThrow" (func $loop-flow/whileThrow)) @@ -19,25 +19,11 @@ (export "doReturn" (func $loop-flow/whileReturn)) (export "doThrow" (func $loop-flow/doThrow)) (export "doAny" (func $loop-flow/doAny)) + (start $start) (func $loop-flow/whileReturn (; 1 ;) (type $FUNCSIG$i) (result i32) i32.const 1 ) - (func $loop-flow/whileThrow (; 2 ;) (type $FUNCSIG$i) (result i32) - i32.const 24 - i32.const 48 - i32.const 9 - i32.const 4 - call $~lib/builtins/abort - unreachable - ) - (func $loop-flow/whileContinue (; 3 ;) (type $FUNCSIG$i) (result i32) - loop $continue|0 - br $continue|0 - unreachable - end - unreachable - ) - (func $loop-flow/whileAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $loop-flow/whileAny (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) loop $continue|0 (result i32) local.get $0 i32.const 1 @@ -49,24 +35,16 @@ i32.const 2 i32.ne br_if $continue|0 + i32.const 64 + i32.const 24 i32.const 24 - i32.const 48 - i32.const 22 i32.const 21 call $~lib/builtins/abort unreachable end end ) - (func $loop-flow/forThrow (; 5 ;) (type $FUNCSIG$i) (result i32) - i32.const 24 - i32.const 48 - i32.const 35 - i32.const 4 - call $~lib/builtins/abort - unreachable - ) - (func $loop-flow/forAny (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $loop-flow/forAny (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) loop $loop|0 (result i32) local.get $0 i32.const 1 @@ -78,9 +56,9 @@ i32.const 2 i32.eq if + i32.const 64 i32.const 24 - i32.const 48 - i32.const 48 + i32.const 54 i32.const 21 call $~lib/builtins/abort unreachable @@ -89,15 +67,7 @@ end end ) - (func $loop-flow/doThrow (; 7 ;) (type $FUNCSIG$i) (result i32) - i32.const 24 - i32.const 48 - i32.const 61 - i32.const 4 - call $~lib/builtins/abort - unreachable - ) - (func $loop-flow/doAny (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $loop-flow/doAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) loop $continue|0 (result i32) local.get $0 i32.const 1 @@ -109,16 +79,87 @@ i32.const 2 i32.ne br_if $continue|0 + i32.const 64 i32.const 24 - i32.const 48 - i32.const 68 + i32.const 78 i32.const 21 call $~lib/builtins/abort unreachable end end ) - (func $null (; 9 ;) (type $FUNCSIG$v) + (func $start:loop-flow (; 5 ;) (type $FUNCSIG$v) + i32.const 1 + call $loop-flow/whileAny + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 29 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $loop-flow/forAny + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 59 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $loop-flow/doAny + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 83 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + ) + (func $loop-flow/whileThrow (; 6 ;) (type $FUNCSIG$i) (result i32) + i32.const 64 + i32.const 24 + i32.const 11 + i32.const 4 + call $~lib/builtins/abort + unreachable + ) + (func $loop-flow/whileContinue (; 7 ;) (type $FUNCSIG$i) (result i32) + loop $continue|0 + br $continue|0 + end + unreachable + ) + (func $loop-flow/forThrow (; 8 ;) (type $FUNCSIG$i) (result i32) + i32.const 64 + i32.const 24 + i32.const 41 + i32.const 4 + call $~lib/builtins/abort + unreachable + ) + (func $loop-flow/doThrow (; 9 ;) (type $FUNCSIG$i) (result i32) + i32.const 64 + i32.const 24 + i32.const 71 + i32.const 4 + call $~lib/builtins/abort + unreachable + ) + (func $start (; 10 ;) (type $FUNCSIG$v) + call $start:loop-flow + ) + (func $null (; 11 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/loop-flow.ts b/tests/compiler/loop-flow.ts index f585035c..08319e0b 100644 --- a/tests/compiler/loop-flow.ts +++ b/tests/compiler/loop-flow.ts @@ -4,6 +4,8 @@ export function whileReturn(): i32 { } } +assert(whileReturn() == 1); + export function whileThrow(): i32 { while (true) { throw new Error("term"); @@ -24,12 +26,16 @@ export function whileAny(a: i32): i32 { } } +assert(whileAny(1) == 1); + export function forReturn(): i32 { for (;;) { return 1; } } +assert(forReturn() == 1); + export function forThrow(): i32 { for (;;) { throw new Error("term"); @@ -50,12 +56,16 @@ export function forAny(a: i32): i32 { } } +assert(forAny(1) == 1); + export function doReturn(): i32 { do { return 1; } while (true); } +assert(doReturn() == 1); + export function doThrow(): i32 { do { throw new Error("term"); @@ -69,3 +79,5 @@ export function doAny(a: i32): i32 { else continue; } while (true); } + +assert(doAny(1) == 1); diff --git a/tests/compiler/loop-flow.untouched.wat b/tests/compiler/loop-flow.untouched.wat index 3951f864..acb91642 100644 --- a/tests/compiler/loop-flow.untouched.wat +++ b/tests/compiler/loop-flow.untouched.wat @@ -5,8 +5,8 @@ (type $FUNCSIG$v (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) - (data (i32.const 8) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m\00") - (data (i32.const 32) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s\00") + (data (i32.const 8) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s\00") + (data (i32.const 48) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m\00") (table $0 1 funcref) (elem (i32.const 0) $null) (export "memory" (memory $0)) @@ -21,31 +21,12 @@ (export "doReturn" (func $loop-flow/doReturn)) (export "doThrow" (func $loop-flow/doThrow)) (export "doAny" (func $loop-flow/doAny)) + (start $start) (func $loop-flow/whileReturn (; 1 ;) (type $FUNCSIG$i) (result i32) i32.const 1 return ) - (func $loop-flow/whileThrow (; 2 ;) (type $FUNCSIG$i) (result i32) - block - i32.const 24 - i32.const 48 - i32.const 9 - i32.const 4 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - ) - (func $loop-flow/whileContinue (; 3 ;) (type $FUNCSIG$i) (result i32) - loop $continue|0 - br $continue|0 - unreachable - end - unreachable - unreachable - ) - (func $loop-flow/whileAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $loop-flow/whileAny (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) loop $continue|0 local.get $0 i32.const 1 @@ -58,61 +39,26 @@ i32.const 2 i32.eq if - block - block - i32.const 24 - i32.const 48 - i32.const 22 - i32.const 21 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 64 + i32.const 24 + i32.const 24 + i32.const 21 + call $~lib/builtins/abort unreachable else - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end unreachable end unreachable - unreachable - unreachable end unreachable - unreachable ) - (func $loop-flow/forReturn (; 5 ;) (type $FUNCSIG$i) (result i32) + (func $loop-flow/forReturn (; 3 ;) (type $FUNCSIG$i) (result i32) i32.const 1 return ) - (func $loop-flow/forThrow (; 6 ;) (type $FUNCSIG$i) (result i32) - block - i32.const 24 - i32.const 48 - i32.const 35 - i32.const 4 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - ) - (func $loop-flow/forContinue (; 7 ;) (type $FUNCSIG$i) (result i32) - loop $loop|0 - br $loop|0 - unreachable - end - unreachable - unreachable - ) - (func $loop-flow/forAny (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $loop-flow/forAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) loop $loop|0 block $continue|0 local.get $0 @@ -126,55 +72,28 @@ i32.const 2 i32.eq if - block - block - i32.const 24 - i32.const 48 - i32.const 48 - i32.const 21 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 64 + i32.const 24 + i32.const 54 + i32.const 21 + call $~lib/builtins/abort unreachable else - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end unreachable end unreachable - unreachable end br $loop|0 - unreachable end unreachable - unreachable ) - (func $loop-flow/doReturn (; 9 ;) (type $FUNCSIG$i) (result i32) + (func $loop-flow/doReturn (; 5 ;) (type $FUNCSIG$i) (result i32) i32.const 1 return ) - (func $loop-flow/doThrow (; 10 ;) (type $FUNCSIG$i) (result i32) - block - i32.const 24 - i32.const 48 - i32.const 61 - i32.const 4 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - ) - (func $loop-flow/doAny (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $loop-flow/doAny (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) loop $continue|0 local.get $0 i32.const 1 @@ -187,36 +106,137 @@ i32.const 2 i32.eq if - block - block - i32.const 24 - i32.const 48 - i32.const 68 - i32.const 21 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 64 + i32.const 24 + i32.const 78 + i32.const 21 + call $~lib/builtins/abort unreachable else - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end unreachable end unreachable - unreachable - unreachable end unreachable + ) + (func $start:loop-flow (; 7 ;) (type $FUNCSIG$v) + call $loop-flow/whileReturn + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 7 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $loop-flow/whileAny + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 29 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + call $loop-flow/forReturn + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 37 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $loop-flow/forAny + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 59 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + call $loop-flow/doReturn + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 67 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $loop-flow/doAny + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 83 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + ) + (func $loop-flow/whileThrow (; 8 ;) (type $FUNCSIG$i) (result i32) + i32.const 64 + i32.const 24 + i32.const 11 + i32.const 4 + call $~lib/builtins/abort unreachable ) - (func $null (; 12 ;) (type $FUNCSIG$v) + (func $loop-flow/whileContinue (; 9 ;) (type $FUNCSIG$i) (result i32) + loop $continue|0 + br $continue|0 + end + unreachable + ) + (func $loop-flow/forThrow (; 10 ;) (type $FUNCSIG$i) (result i32) + i32.const 64 + i32.const 24 + i32.const 41 + i32.const 4 + call $~lib/builtins/abort + unreachable + ) + (func $loop-flow/forContinue (; 11 ;) (type $FUNCSIG$i) (result i32) + loop $loop|0 + br $loop|0 + end + unreachable + ) + (func $loop-flow/doThrow (; 12 ;) (type $FUNCSIG$i) (result i32) + i32.const 64 + i32.const 24 + i32.const 71 + i32.const 4 + call $~lib/builtins/abort + unreachable + ) + (func $start (; 13 ;) (type $FUNCSIG$v) + call $start:loop-flow + ) + (func $null (; 14 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/mandelbrot.optimized.wat b/tests/compiler/mandelbrot.optimized.wat index 858fbdfa..db88a948 100644 --- a/tests/compiler/mandelbrot.optimized.wat +++ b/tests/compiler/mandelbrot.optimized.wat @@ -504,7 +504,6 @@ f64.sub local.get $11 f64.add - local.set $8 f64.const 2 local.get $4 f64.mul @@ -513,7 +512,6 @@ local.get $10 f64.add local.set $5 - local.get $8 local.set $4 local.get $6 i32.const 1 diff --git a/tests/compiler/mandelbrot.untouched.wat b/tests/compiler/mandelbrot.untouched.wat index 2ae23085..2f198a59 100644 --- a/tests/compiler/mandelbrot.untouched.wat +++ b/tests/compiler/mandelbrot.untouched.wat @@ -601,18 +601,13 @@ local.get $3 i32.ge_u if - block - br $break|1 - unreachable - end - unreachable + br $break|1 end local.get $18 i32.const 1 i32.add local.set $18 br $continue|1 - unreachable end unreachable end @@ -649,7 +644,6 @@ i32.add local.set $18 br $continue|2 - unreachable end unreachable end @@ -679,26 +673,24 @@ i32.const 1 i32.sub f64.convert_i32_s - block $../../examples/mandelbrot/assembly/index/clamp|inlined.0 (result f64) - local.get $18 - i32.const 1 - i32.add - f64.convert_i32_u - local.get $21 - f64.sub - local.get $10 - f64.mul - local.set $24 - f64.const 0 - local.set $23 - f64.const 1 - local.set $22 - local.get $24 - local.get $23 - f64.max - local.get $22 - f64.min - end + local.get $18 + i32.const 1 + i32.add + f64.convert_i32_u + local.get $21 + f64.sub + local.get $10 + f64.mul + local.set $24 + f64.const 0 + local.set $23 + f64.const 1 + local.set $22 + local.get $24 + local.get $23 + f64.max + local.get $22 + f64.min f64.mul i32.trunc_f64_u local.set $20 @@ -715,7 +707,6 @@ i32.add local.set $12 br $loop|0 - unreachable end unreachable end diff --git a/tests/compiler/memcpy.untouched.wat b/tests/compiler/memcpy.untouched.wat index 6944893e..a46300d3 100644 --- a/tests/compiler/memcpy.untouched.wat +++ b/tests/compiler/memcpy.untouched.wat @@ -31,22 +31,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 local.get $2 @@ -54,7 +50,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -112,7 +107,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -179,22 +173,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 end @@ -230,58 +220,46 @@ local.get $1 i32.load local.set $4 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 local.get $2 @@ -370,53 +348,40 @@ i32.sub local.set $2 br $continue|3 - unreachable end unreachable end - block - br $break|2 - unreachable - end - unreachable + br $break|2 end local.get $1 i32.load local.set $4 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 local.get $2 @@ -505,35 +470,26 @@ i32.sub local.set $2 br $continue|4 - unreachable end unreachable end - block - br $break|2 - unreachable - end - unreachable + br $break|2 end local.get $1 i32.load local.set $4 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 local.get $2 @@ -622,307 +578,238 @@ i32.sub local.set $2 br $continue|5 - unreachable end unreachable end - block - br $break|2 - unreachable - end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 end @@ -930,148 +817,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 end @@ -1079,76 +934,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 end @@ -1156,40 +995,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 end @@ -1197,22 +1028,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $6 - i32.const 1 - i32.add - local.set $0 - local.get $6 - end - block (result i32) - local.get $1 - local.tee $6 - i32.const 1 - i32.add - local.set $1 - local.get $6 - end + local.get $0 + local.tee $6 + i32.const 1 + i32.add + local.set $0 + local.get $6 + local.get $1 + local.tee $6 + i32.const 1 + i32.add + local.set $1 + local.get $6 i32.load8_u i32.store8 end diff --git a/tests/compiler/memmove.untouched.wat b/tests/compiler/memmove.untouched.wat index e8371b28..f7ca1cfa 100644 --- a/tests/compiler/memmove.untouched.wat +++ b/tests/compiler/memmove.untouched.wat @@ -52,26 +52,21 @@ i32.const 1 i32.sub local.set $2 - block (result i32) - local.get $0 - local.tee $4 - i32.const 1 - i32.add - local.set $0 - local.get $4 - end - block (result i32) - local.get $1 - local.tee $4 - i32.const 1 - i32.add - local.set $1 - local.get $4 - end + local.get $0 + local.tee $4 + i32.const 1 + i32.add + local.set $0 + local.get $4 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $4 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -99,7 +94,6 @@ i32.add local.set $1 br $continue|1 - unreachable end unreachable end @@ -109,22 +103,18 @@ local.get $2 i32.eqz br_if $break|2 - block (result i32) - local.get $0 - local.tee $4 - i32.const 1 - i32.add - local.set $0 - local.get $4 - end - block (result i32) - local.get $1 - local.tee $4 - i32.const 1 - i32.add - local.set $1 - local.get $4 - end + local.get $0 + local.tee $4 + i32.const 1 + i32.add + local.set $0 + local.get $4 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $4 i32.load8_u i32.store8 local.get $2 @@ -132,7 +122,6 @@ i32.sub local.set $2 br $continue|2 - unreachable end unreachable end @@ -172,7 +161,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -196,7 +184,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -218,7 +205,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end diff --git a/tests/compiler/memset.optimized.wat b/tests/compiler/memset.optimized.wat index c5d4ebd3..b3c5d17a 100644 --- a/tests/compiler/memset.optimized.wat +++ b/tests/compiler/memset.optimized.wat @@ -80,7 +80,6 @@ i32.and local.tee $2 i32.sub - local.set $3 local.get $0 local.get $2 i32.add @@ -92,7 +91,6 @@ i32.mul local.tee $1 i32.store - local.get $3 i32.const -4 i32.and local.tee $2 diff --git a/tests/compiler/memset.untouched.wat b/tests/compiler/memset.untouched.wat index 3db10868..f4d16e28 100644 --- a/tests/compiler/memset.untouched.wat +++ b/tests/compiler/memset.untouched.wat @@ -269,7 +269,6 @@ i32.add local.set $0 br $continue|0 - unreachable end unreachable end diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 754cfc90..35ba8c49 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -7,7 +7,6 @@ (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$v (func)) - (type $FUNCSIG$ji (func (param i32) (result i64))) (type $FUNCSIG$iijijij (func (param i32 i64 i32 i64 i32 i64) (result i32))) (type $FUNCSIG$i (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -21,21 +20,19 @@ (data (i32.const 184) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") (data (i32.const 216) "\b8\02\00\00\01\00\00\00\00\00\00\00\b8\02\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8#__get (; 10 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) - local.get $0 - i32.const 952 - i32.load - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 976 - i32.const 1032 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - end - i32.const 948 - i32.load - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $~lib/array/Array#__get (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.const 1280 - i32.load - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 976 - i32.const 1032 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - end - i32.const 1276 - i32.load - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - ) - (func $~lib/util/number/genDigits (; 12 ;) (type $FUNCSIG$iijijij) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32) + (func $~lib/util/number/genDigits (; 10 ;) (type $FUNCSIG$iijijij) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (result i32) (local $6 i32) (local $7 i32) (local $8 i64) @@ -405,7 +356,7 @@ local.tee $6 call $~lib/util/number/decimalCount32 local.set $4 - i32.const 1364 + i32.const 1260 i32.load local.set $12 loop $continue|0 @@ -767,7 +718,7 @@ i32.store16 local.get $2 ) - (func $~lib/memory/memory.copy (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) block $~lib/util/memory/memmove|inlined.0 @@ -942,7 +893,7 @@ end end ) - (func $~lib/util/number/prettify (; 14 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -1097,23 +1048,21 @@ i32.const 4 i32.add local.tee $0 - block (result i32) - local.get $3 - i32.const 1 - i32.sub - local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + local.tee $1 + if i32.const 0 - i32.lt_s - local.tee $1 - if - i32.const 0 - local.get $2 - i32.sub - local.set $2 - end local.get $2 + i32.sub + local.set $2 end local.get $2 + local.get $2 call $~lib/util/number/decimalCount32 i32.const 1 i32.add @@ -1155,23 +1104,21 @@ i32.const 4 i32.add local.tee $2 - block (result i32) - local.get $3 - i32.const 1 - i32.sub - local.tee $0 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end local.get $0 + i32.sub + local.set $0 end local.get $0 + local.get $0 call $~lib/util/number/decimalCount32 i32.const 1 i32.add @@ -1193,14 +1140,13 @@ end end ) - (func $~lib/util/number/dtoa_core (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/dtoa_core (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i64) (local $2 i64) (local $3 i64) - (local $4 i64) - (local $5 i32) - (local $6 i64) - (local $7 f64) + (local $4 i32) + (local $5 i64) + (local $6 f64) i64.const -9223372036854774784 global.set $~lib/util/number/_frc_plus i64.const 9223372036854775296 @@ -1216,95 +1162,66 @@ f64.mul f64.const 347 f64.add - local.tee $7 + local.tee $6 i32.trunc_f64_s - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.convert_i32_s - local.get $7 + local.get $6 f64.ne i32.add i32.const 3 i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $4 i32.const 3 i32.shl i32.sub global.set $~lib/util/number/_K - local.get $5 - call $~lib/array/Array#__get + i32.const 948 + i32.load + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load global.set $~lib/util/number/_frc_pow - local.get $5 - call $~lib/array/Array#__get + i32.const 1172 + i32.load + local.get $4 + i32.const 1 + i32.shl + i32.add + 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.set $2 global.get $~lib/util/number/_frc_plus - local.tee $4 + local.tee $1 i64.const 4294967295 i64.and - local.tee $1 - local.get $3 - i64.const 32 - i64.shr_u local.tee $3 - i64.mul - local.get $4 + global.get $~lib/util/number/_frc_pow + local.tee $2 i64.const 32 i64.shr_u - local.tee $4 - local.get $2 + local.tee $5 i64.mul - local.get $1 local.get $2 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $1 i64.const 4294967295 i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - local.get $3 - local.get $4 - i64.mul - local.get $1 - i64.const 32 - i64.shr_u - i64.add - i64.add - i64.const 1 - i64.sub - local.tee $4 - local.get $3 - global.get $~lib/util/number/_frc_minus - local.tee $1 - i64.const 4294967295 - i64.and - local.tee $6 - i64.mul + local.tee $2 local.get $1 i64.const 32 i64.shr_u local.tee $1 - local.get $2 i64.mul local.get $2 - local.get $6 + local.get $3 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $6 + local.tee $3 i64.const 4294967295 i64.and i64.add @@ -1313,15 +1230,14 @@ i64.const 32 i64.shr_u local.get $1 - local.get $3 + local.get $5 i64.mul - local.get $6 + local.get $3 i64.const 32 i64.shr_u i64.add i64.add i64.const 1 - i64.add i64.sub local.set $1 local.get $0 @@ -1331,7 +1247,7 @@ i64.mul i64.const 0 i64.add - local.tee $2 + local.tee $3 i64.const 4294967295 i64.and i64.const 0 @@ -1340,10 +1256,10 @@ i64.add i64.const 32 i64.shr_u - local.get $3 + local.get $5 i64.const 2147483648 i64.mul - local.get $2 + local.get $3 i64.const 32 i64.shr_u i64.add @@ -1352,25 +1268,63 @@ local.tee $0 i32.const 2 i32.add - local.get $4 + local.get $1 global.get $~lib/util/number/_exp local.get $0 i32.add i32.const -64 i32.sub local.get $1 + global.get $~lib/util/number/_frc_minus + local.tee $1 + i64.const 4294967295 + i64.and + local.tee $3 + local.get $5 + i64.mul + local.get $1 + i64.const 32 + i64.shr_u + local.tee $1 + local.get $2 + i64.mul + local.get $2 + local.get $3 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $2 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + local.get $1 + local.get $5 + i64.mul + local.get $2 + i64.const 32 + i64.shr_u + i64.add + i64.add + i64.const 1 + i64.add + i64.sub call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify ) - (func $~lib/string/String#substring (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 i32.eqz if i32.const 0 - i32.const 1392 + i32.const 1288 i32.const 196 i32.const 4 call $~lib/builtins/abort @@ -1418,7 +1372,7 @@ local.tee $2 i32.eqz if - i32.const 1440 + i32.const 1336 return end local.get $3 @@ -1446,7 +1400,7 @@ call $~lib/memory/memory.copy local.get $1 ) - (func $~lib/util/number/dtoa (; 17 ;) (type $FUNCSIG$i) (result i32) + (func $~lib/util/number/dtoa (; 15 ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) f64.const 2 @@ -1477,13 +1431,13 @@ local.get $1 call $~lib/string/String#substring ) - (func $~lib/number/Bool#toString (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - i32.const 1576 - i32.const 1600 + (func $~lib/number/Bool#toString (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + i32.const 1472 + i32.const 1496 local.get $0 select ) - (func $~lib/number/F32.isSafeInteger (; 19 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/F32.isSafeInteger (; 17 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 f32.trunc local.get $0 @@ -1495,7 +1449,7 @@ f32.le select ) - (func $~lib/number/F32.isInteger (; 20 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/F32.isInteger (; 18 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 f32.trunc local.get $0 @@ -1508,7 +1462,7 @@ f32.eq select ) - (func $~lib/number/F64.isSafeInteger (; 21 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/F64.isSafeInteger (; 19 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 f64.trunc local.get $0 @@ -1520,7 +1474,7 @@ f64.le select ) - (func $~lib/number/F64.isInteger (; 22 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/F64.isInteger (; 20 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 call $~lib/number/isFinite if (result i32) @@ -1532,9 +1486,9 @@ i32.const 0 end ) - (func $start:number (; 23 ;) (type $FUNCSIG$v) + (func $start:number (; 21 ;) (type $FUNCSIG$v) (local $0 i32) - i32.const 1616 + i32.const 1520 global.set $~lib/rt/stub/startOffset global.get $~lib/rt/stub/startOffset global.set $~lib/rt/stub/offset @@ -1552,7 +1506,7 @@ unreachable end call $~lib/util/number/dtoa - i32.const 1456 + i32.const 1352 call $~lib/string/String.__eq i32.eqz if @@ -1565,7 +1519,7 @@ end i32.const 3 call $~lib/util/number/itoa32 - i32.const 1480 + i32.const 1376 call $~lib/string/String.__eq i32.eqz if @@ -1578,7 +1532,7 @@ end i32.const -5 call $~lib/util/number/itoa32 - i32.const 1504 + i32.const 1400 call $~lib/string/String.__eq i32.eqz if @@ -1591,7 +1545,7 @@ end i32.const 4 call $~lib/util/number/itoa32 - i32.const 1528 + i32.const 1424 call $~lib/string/String.__eq i32.eqz if @@ -1608,7 +1562,7 @@ global.set $number/a global.get $number/a call $~lib/util/number/itoa32 - i32.const 1552 + i32.const 1448 call $~lib/string/String.__eq i32.eqz if @@ -1638,7 +1592,7 @@ end i32.const 1 call $~lib/number/Bool#toString - i32.const 1576 + i32.const 1472 call $~lib/string/String.__eq i32.eqz if @@ -1651,7 +1605,7 @@ end i32.const 0 call $~lib/number/Bool#toString - i32.const 1600 + i32.const 1496 call $~lib/string/String.__eq i32.eqz if @@ -1687,7 +1641,7 @@ global.set $number/a local.get $0 call $~lib/util/number/itoa32 - i32.const 1552 + i32.const 1448 call $~lib/string/String.__eq i32.eqz if @@ -2150,10 +2104,10 @@ unreachable end ) - (func $start (; 24 ;) (type $FUNCSIG$v) + (func $start (; 22 ;) (type $FUNCSIG$v) call $start:number ) - (func $null (; 25 ;) (type $FUNCSIG$v) + (func $null (; 23 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/number.untouched.wat b/tests/compiler/number.untouched.wat index fc1c1c57..5668a545 100644 --- a/tests/compiler/number.untouched.wat +++ b/tests/compiler/number.untouched.wat @@ -26,21 +26,19 @@ (data (i32.const 632) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") (data (i32.const 664) "\b8\02\00\00\01\00\00\00\00\00\00\00\b8\02\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8#__get (; 15 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - block - block - i32.const 1424 - i32.const 1480 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - ) - (func $~lib/array/Array#__unchecked_get (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -664,34 +616,7 @@ i32.add i32.load16_s ) - (func $~lib/array/Array#__get (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - block - block - i32.const 1424 - i32.const 1480 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - ) - (func $~lib/util/number/genDigits (; 18 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 16 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -746,7 +671,7 @@ local.set $14 local.get $6 local.set $15 - i32.const 1808 + i32.const 1704 i32.load offset=4 local.set $16 block $break|0 @@ -812,163 +737,117 @@ br_if $case9|1 br $case10|1 end - block - local.get $12 - i32.const 1000000000 - i32.div_u - local.set $17 - local.get $12 - i32.const 1000000000 - i32.rem_u - local.set $12 - br $break|1 - unreachable - end - unreachable - end - block local.get $12 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $17 local.get $12 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $17 local.get $12 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $17 local.get $12 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $17 local.get $12 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 10000 + i32.const 100000 i32.div_u local.set $17 local.get $12 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 1000 + i32.const 10000 i32.div_u local.set $17 local.get $12 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 100 + i32.const 1000 i32.div_u local.set $17 local.get $12 - i32.const 100 + i32.const 1000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 10 + i32.const 100 i32.div_u local.set $17 local.get $12 - i32.const 10 + i32.const 100 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 + i32.const 10 + i32.div_u local.set $17 - i32.const 0 + local.get $12 + i32.const 10 + i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block - i32.const 0 + local.get $12 local.set $17 + i32.const 0 + local.set $12 br $break|1 - unreachable end - unreachable + i32.const 0 + local.set $17 + br $break|1 end local.get $17 local.get $15 i32.or if local.get $0 - block (result i32) - local.get $15 - local.tee $18 - i32.const 1 - i32.add - local.set $15 - local.get $18 - end + local.get $15 + local.tee $18 + i32.const 1 + i32.add + local.set $15 + local.get $18 i32.const 1 i32.shl i32.add @@ -999,98 +878,94 @@ local.get $14 i32.add global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $0 - local.set $24 - local.get $15 - local.set $18 - local.get $5 - local.set $23 - local.get $19 - local.set $22 - local.get $16 - local.get $14 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.set $21 - local.get $10 - local.set $20 - local.get $24 - local.get $18 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $25 - local.get $25 - i32.load16_u - local.set $26 - block $break|2 - loop $continue|2 + local.get $0 + local.set $24 + local.get $15 + local.set $18 + local.get $5 + local.set $23 + local.get $19 + local.set $22 + local.get $16 + local.get $14 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $21 + local.get $10 + local.set $20 + local.get $24 + local.get $18 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $25 + local.get $25 + i32.load16_u + local.set $26 + block $break|2 + loop $continue|2 + local.get $22 + local.get $20 + i64.lt_u + if (result i32) + local.get $23 local.get $22 + i64.sub + local.get $21 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $22 + local.get $21 + i64.add local.get $20 i64.lt_u if (result i32) - local.get $23 + i32.const 1 + else + local.get $20 local.get $22 i64.sub - local.get $21 - i64.ge_u - else - i32.const 0 - end - if (result i32) local.get $22 local.get $21 i64.add local.get $20 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $20 - local.get $22 - i64.sub - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.sub - i64.gt_u - end - else - i32.const 0 + i64.sub + i64.gt_u end - i32.eqz - br_if $break|2 - local.get $26 - i32.const 1 - i32.sub - local.set $26 - local.get $22 - local.get $21 - i64.add - local.set $22 - br $continue|2 - unreachable + else + i32.const 0 end - unreachable + i32.eqz + br_if $break|2 + local.get $26 + i32.const 1 + i32.sub + local.set $26 + local.get $22 + local.get $21 + i64.add + local.set $22 + br $continue|2 end - local.get $25 - local.get $26 - i32.store16 + unreachable end + local.get $25 + local.get $26 + i32.store16 local.get $15 return end br $continue|0 - unreachable end unreachable end @@ -1116,14 +991,12 @@ i64.ne if local.get $0 - block (result i32) - local.get $15 - local.tee $17 - i32.const 1 - i32.add - local.set $15 - local.get $17 - end + local.get $15 + local.tee $17 + i32.const 1 + i32.add + local.set $15 + local.get $17 i32.const 1 i32.shl i32.add @@ -1162,95 +1035,90 @@ i64.load32_u i64.mul local.set $10 - block $~lib/util/number/grisuRound|inlined.1 - local.get $0 - local.set $24 - local.get $15 - local.set $18 - local.get $5 - local.set $23 - local.get $13 - local.set $22 - local.get $8 - local.set $21 - local.get $10 - local.set $20 - local.get $24 - local.get $18 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $17 - local.get $17 - i32.load16_u - local.set $26 - block $break|4 - loop $continue|4 + local.get $0 + local.set $24 + local.get $15 + local.set $18 + local.get $5 + local.set $23 + local.get $13 + local.set $22 + local.get $8 + local.set $21 + local.get $10 + local.set $20 + local.get $24 + local.get $18 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $17 + local.get $17 + i32.load16_u + local.set $26 + block $break|4 + loop $continue|4 + local.get $22 + local.get $20 + i64.lt_u + if (result i32) + local.get $23 local.get $22 + i64.sub + local.get $21 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $22 + local.get $21 + i64.add local.get $20 i64.lt_u if (result i32) - local.get $23 + i32.const 1 + else + local.get $20 local.get $22 i64.sub - local.get $21 - i64.ge_u - else - i32.const 0 - end - if (result i32) local.get $22 local.get $21 i64.add local.get $20 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $20 - local.get $22 - i64.sub - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.sub - i64.gt_u - end - else - i32.const 0 + i64.sub + i64.gt_u end - i32.eqz - br_if $break|4 - local.get $26 - i32.const 1 - i32.sub - local.set $26 - local.get $22 - local.get $21 - i64.add - local.set $22 - br $continue|4 - unreachable + else + i32.const 0 end - unreachable + i32.eqz + br_if $break|4 + local.get $26 + i32.const 1 + i32.sub + local.set $26 + local.get $22 + local.get $21 + i64.add + local.set $22 + br $continue|4 end - local.get $17 - local.get $26 - i32.store16 + unreachable end + local.get $17 + local.get $26 + i32.store16 local.get $15 return end br $continue|3 - unreachable end unreachable - local.get $15 ) - (func $~lib/util/memory/memcpy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 17 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1266,22 +1134,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1289,7 +1153,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1347,7 +1210,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1414,22 +1276,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1461,226 +1319,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1688,15 +1398,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1704,15 +1414,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -1720,10 +1430,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -1739,65 +1449,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -1805,15 +1520,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -1821,15 +1536,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -1837,10 +1552,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -1856,307 +1571,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2164,148 +1919,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2313,76 +2036,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2390,40 +2097,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2431,27 +2130,23 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end ) - (func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 18 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2518,26 +2213,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2565,7 +2255,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2575,22 +2264,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2598,7 +2283,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2637,7 +2321,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2661,7 +2344,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2683,14 +2365,13 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end end end ) - (func $~lib/util/number/prettify (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 19 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2755,7 +2436,6 @@ i32.add local.set $4 br $loop|0 - unreachable end unreachable end @@ -2867,7 +2547,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -2883,51 +2562,47 @@ local.get $0 i32.const 101 i32.store16 offset=2 - block $~lib/util/number/genExponent|inlined.0 (result i32) - local.get $0 - i32.const 4 - i32.add - local.set $4 - local.get $3 - i32.const 1 + local.get $0 + i32.const 4 + i32.add + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $5 + local.get $5 + i32.const 0 + i32.lt_s + local.set $6 + local.get $6 + if + i32.const 0 + local.get $5 i32.sub local.set $5 - local.get $5 - i32.const 0 - i32.lt_s - local.set $6 - local.get $6 - if - i32.const 0 - local.get $5 - i32.sub - local.set $5 - end - local.get $5 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $7 - block $~lib/util/number/utoa32_core|inlined.1 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/number/utoa32_lut - end - local.get $4 - i32.const 45 - i32.const 43 - local.get $6 - select - i32.store16 - local.get $7 end + local.get $5 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $4 + local.set $10 + local.get $5 + local.set $9 + local.get $7 + local.set $8 + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $6 + select + i32.store16 + local.get $7 local.set $1 local.get $1 i32.const 2 @@ -2957,53 +2632,49 @@ i32.const 101 i32.store16 offset=2 local.get $1 - block $~lib/util/number/genExponent|inlined.1 (result i32) - local.get $0 - local.get $7 - i32.add - i32.const 4 - i32.add - local.set $9 - local.get $3 - i32.const 1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $6 + local.get $6 + if + i32.const 0 + local.get $8 i32.sub local.set $8 - local.get $8 - i32.const 0 - i32.lt_s - local.set $6 - local.get $6 - if - i32.const 0 - local.get $8 - i32.sub - local.set $8 - end - local.get $8 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $4 - block $~lib/util/number/utoa32_core|inlined.2 - local.get $9 - local.set $11 - local.get $8 - local.set $5 - local.get $4 - local.set $10 - local.get $11 - local.get $5 - local.get $10 - call $~lib/util/number/utoa32_lut - end - local.get $9 - i32.const 45 - i32.const 43 - local.get $6 - select - i32.store16 - local.get $4 end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $4 + local.get $9 + local.set $11 + local.get $8 + local.set $5 + local.get $4 + local.set $10 + local.get $11 + local.get $5 + local.get $10 + call $~lib/util/number/utoa32_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $6 + select + i32.store16 + local.get $4 i32.add local.set $1 local.get $1 @@ -3018,9 +2689,8 @@ unreachable end unreachable - unreachable ) - (func $~lib/util/number/dtoa_core (; 22 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 20 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3061,387 +2731,371 @@ i32.const 45 i32.store16 end - block $~lib/util/number/grisu2|inlined.0 (result i32) - local.get $1 - local.set $5 - local.get $0 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i64.reinterpret_f64 - local.set $6 - local.get $6 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $7 - local.get $6 - i64.const 4503599627370495 - i64.and - local.set $8 - local.get $7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $8 - i64.add - local.set $9 - local.get $7 - i32.const 1 - local.get $7 - i32.const 0 - i32.ne - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $7 - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $9 - local.set $11 - local.get $7 - local.set $10 - local.get $11 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $12 - local.get $10 - i32.const 1 - i32.sub - local.set $13 - local.get $12 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $12 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $12 - local.get $13 - local.get $14 - i32.sub - local.set $13 - i32.const 1 - local.get $11 - i64.const 4503599627370496 - i64.eq - i32.add - local.set $15 - local.get $12 - global.set $~lib/util/number/_frc_plus - local.get $11 - local.get $15 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $10 - local.get $15 - i32.sub - local.get $13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $13 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $10 - i32.const -61 - local.get $10 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $16 - local.get $16 - i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 - f64.convert_i32_s - local.get $16 - f64.ne - i32.add - local.set $15 - local.get $15 - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $14 - i32.const 348 - local.get $14 - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 1392 - local.get $14 - call $~lib/array/Array#__get - global.set $~lib/util/number/_frc_pow - i32.const 1720 - local.get $14 - call $~lib/array/Array#__get - global.set $~lib/util/number/_exp_pow - end - local.get $9 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $9 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $9 - local.get $7 - local.get $14 - i32.sub - local.set $7 - global.get $~lib/util/number/_frc_pow - local.set $12 - global.get $~lib/util/number/_exp_pow - local.set $15 - block $~lib/util/number/umul64f|inlined.0 (result i64) - local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $24 - local.get $24 - i64.const 2147483647 - i64.add - local.set $24 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $24 - i64.const 32 - i64.shr_u - local.set $24 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $24 - i64.add - end - local.set $24 - block $~lib/util/number/umul64e|inlined.0 (result i32) - local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 - i32.add - i32.const 64 - i32.add - end - local.set $10 - block $~lib/util/number/umul64f|inlined.1 (result i64) - global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $23 - local.get $11 - i64.const 4294967295 - i64.and - local.set $22 - local.get $17 - i64.const 32 - i64.shr_u - local.set $21 - local.get $11 - i64.const 32 - i64.shr_u - local.set $20 - local.get $23 - local.get $22 - i64.mul - local.set $19 - local.get $21 - local.get $22 - i64.mul - local.get $19 - i64.const 32 - i64.shr_u - i64.add - local.set $18 - local.get $23 - local.get $20 - i64.mul - local.get $18 - i64.const 4294967295 - i64.and - i64.add - local.set $25 - local.get $25 - i64.const 2147483647 - i64.add - local.set $25 - local.get $18 - i64.const 32 - i64.shr_u - local.set $18 - local.get $25 - i64.const 32 - i64.shr_u - local.set $25 - local.get $21 - local.get $20 - i64.mul - local.get $18 - i64.add - local.get $25 - i64.add - end - i64.const 1 - i64.sub - local.set $25 - block $~lib/util/number/umul64e|inlined.1 (result i32) - global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 - i32.add - i32.const 64 - i32.add - end - local.set $26 - block $~lib/util/number/umul64f|inlined.2 (result i64) - global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $27 - local.get $27 - i64.const 2147483647 - i64.add - local.set $27 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $27 - i64.const 32 - i64.shr_u - local.set $27 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $27 - i64.add - end - i64.const 1 - i64.add - local.set $27 - local.get $25 - local.get $27 - i64.sub - local.set $23 - local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 - local.get $3 - call $~lib/util/number/genDigits - end + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and + local.set $8 + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $8 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + i32.const 0 + i32.ne + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq + i32.add + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 + i32.sub + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 1392 + local.get $14 + call $~lib/array/Array#__unchecked_get + global.set $~lib/util/number/_frc_pow + i32.const 1616 + local.get $14 + call $~lib/array/Array#__unchecked_get + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp + local.set $26 + local.get $15 + local.set $13 + local.get $26 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 + local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 + call $~lib/util/number/genDigits local.set $28 local.get $0 local.get $2 @@ -3458,7 +3112,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#substring (; 23 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3473,7 +3127,7 @@ i32.eqz if i32.const 0 - i32.const 1840 + i32.const 1736 i32.const 196 i32.const 4 call $~lib/builtins/abort @@ -3543,7 +3197,7 @@ local.get $3 i32.eqz if - i32.const 1888 + i32.const 1784 call $~lib/rt/stub/__retain return end @@ -3577,10 +3231,10 @@ local.get $10 call $~lib/rt/stub/__retain ) - (func $~lib/rt/stub/__free (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/stub/__free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/util/number/dtoa (; 25 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 23 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3639,31 +3293,31 @@ call $~lib/rt/stub/__free local.get $3 ) - (func $~lib/number/F64#toString (; 26 ;) (type $FUNCSIG$idi) (param $0 f64) (param $1 i32) (result i32) + (func $~lib/number/F64#toString (; 24 ;) (type $FUNCSIG$idi) (param $0 f64) (param $1 i32) (result i32) local.get $0 call $~lib/util/number/dtoa ) - (func $~lib/number/Bool#toString (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/number/Bool#toString (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 if (result i32) - i32.const 2024 + i32.const 1920 call $~lib/rt/stub/__retain local.tee $1 else - i32.const 2048 + i32.const 1944 call $~lib/rt/stub/__retain local.tee $2 end call $~lib/rt/stub/__retain ) - (func $~lib/number/isNaN (; 28 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/isNaN (; 26 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $~lib/number/F32.isSafeInteger (; 29 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/F32.isSafeInteger (; 27 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 f32.abs global.get $~lib/builtins/f32.MAX_SAFE_INTEGER @@ -3677,14 +3331,14 @@ i32.const 0 end ) - (func $~lib/number/isFinite (; 30 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/isFinite (; 28 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.sub f32.const 0 f32.eq ) - (func $~lib/number/F32.isInteger (; 31 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/F32.isInteger (; 29 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 call $~lib/number/isFinite if (result i32) @@ -3696,7 +3350,7 @@ i32.const 0 end ) - (func $~lib/number/F64.isSafeInteger (; 32 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/F64.isSafeInteger (; 30 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 f64.abs global.get $~lib/builtins/f64.MAX_SAFE_INTEGER @@ -3710,7 +3364,7 @@ i32.const 0 end ) - (func $~lib/number/F64.isInteger (; 33 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/F64.isInteger (; 31 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 call $~lib/number/isFinite if (result i32) @@ -3722,7 +3376,7 @@ i32.const 0 end ) - (func $start:number (; 34 ;) (type $FUNCSIG$v) + (func $start:number (; 32 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3762,7 +3416,7 @@ i32.const 0 call $~lib/number/F64#toString local.tee $1 - i32.const 1904 + i32.const 1800 call $~lib/string/String.__eq i32.eqz if @@ -3776,7 +3430,7 @@ i32.const 3 call $~lib/number/I32#toString local.tee $2 - i32.const 1928 + i32.const 1824 call $~lib/string/String.__eq i32.eqz if @@ -3790,7 +3444,7 @@ i32.const -5 call $~lib/number/I32#toString local.tee $3 - i32.const 1952 + i32.const 1848 call $~lib/string/String.__eq i32.eqz if @@ -3804,7 +3458,7 @@ i32.const 4 call $~lib/number/I32#toString local.tee $4 - i32.const 1976 + i32.const 1872 call $~lib/string/String.__eq i32.eqz if @@ -3815,16 +3469,14 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $number/a - i32.const 1 - i32.add - global.set $number/a - global.get $number/a - end + global.get $number/a + i32.const 1 + i32.add + global.set $number/a + global.get $number/a call $~lib/number/I32#toString local.tee $5 - i32.const 2000 + i32.const 1896 call $~lib/string/String.__eq i32.eqz if @@ -3835,13 +3487,11 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $number/a - i32.const 1 - i32.sub - global.set $number/a - global.get $number/a - end + global.get $number/a + i32.const 1 + i32.sub + global.set $number/a + global.get $number/a call $~lib/number/I32#toString local.tee $6 i32.const 496 @@ -3859,7 +3509,7 @@ i32.eqz call $~lib/number/Bool#toString local.tee $7 - i32.const 2024 + i32.const 1920 call $~lib/string/String.__eq i32.eqz if @@ -3874,7 +3524,7 @@ i32.eqz call $~lib/number/Bool#toString local.tee $8 - i32.const 2048 + i32.const 1944 call $~lib/string/String.__eq i32.eqz if @@ -3885,14 +3535,12 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $number/a - local.tee $9 - i32.const 1 - i32.add - global.set $number/a - local.get $9 - end + global.get $number/a + local.tee $9 + i32.const 1 + i32.add + global.set $number/a + local.get $9 call $~lib/number/I32#toString local.tee $9 i32.const 496 @@ -3906,17 +3554,15 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $number/a - local.tee $10 - i32.const 1 - i32.sub - global.set $number/a - local.get $10 - end + global.get $number/a + local.tee $10 + i32.const 1 + i32.sub + global.set $number/a + local.get $10 call $~lib/number/I32#toString local.tee $10 - i32.const 2000 + i32.const 1896 call $~lib/string/String.__eq i32.eqz if @@ -4500,9 +4146,9 @@ local.get $10 call $~lib/rt/stub/__release ) - (func $start (; 35 ;) (type $FUNCSIG$v) + (func $start (; 33 ;) (type $FUNCSIG$v) call $start:number ) - (func $null (; 36 ;) (type $FUNCSIG$v) + (func $null (; 34 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/overflow.untouched.wat b/tests/compiler/overflow.untouched.wat index 67e0bb93..9acda5bf 100644 --- a/tests/compiler/overflow.untouched.wat +++ b/tests/compiler/overflow.untouched.wat @@ -12,745 +12,721 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block - i32.const 127 - local.set $0 - local.get $0 - i32.const 1 - i32.add - local.set $0 - local.get $0 + i32.const 127 + local.set $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -128 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 10 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 127 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 13 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $2 - end - local.set $1 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -128 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 16 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $0 - local.tee $2 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - end - local.set $1 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 127 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 19 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -128 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 22 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 127 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 25 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.set $1 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -128 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 28 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.set $1 - local.get $0 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const 127 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 31 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - i32.const -128 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 33 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + i32.const 10 + i32.const 2 + call $~lib/builtins/abort + unreachable end - block - i32.const 32767 - local.set $1 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const -32768 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 42 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 32767 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 45 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $2 - end - local.set $0 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const -32768 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 48 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $1 - local.tee $2 - i32.const 1 - i32.sub - local.set $1 - local.get $2 - end - local.set $0 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 32767 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 51 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const -32768 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 54 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 32767 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 57 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.tee $1 - local.set $0 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const -32768 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 60 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - local.set $0 - local.get $1 - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const 32767 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 63 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - i32.const 16 - i32.shl - i32.const 16 - i32.shr_s - i32.const -32768 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 65 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 127 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 13 + i32.const 2 + call $~lib/builtins/abort + unreachable end - block + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $2 + local.set $1 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if i32.const 0 - local.set $0 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $0 - i32.const 255 - i32.and - i32.const 255 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 74 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - local.get $0 - i32.const 255 - i32.and - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 77 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $0 - local.tee $2 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - end - local.set $1 - local.get $0 - i32.const 255 - i32.and - i32.const 255 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 80 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $2 - end - local.set $1 - local.get $0 - i32.const 255 - i32.and - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 83 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $0 - i32.const 255 - i32.and - i32.const 255 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 86 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - local.get $0 - i32.const 255 - i32.and - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 89 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.set $1 - local.get $0 - i32.const 255 - i32.and - i32.const 255 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 92 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.tee $0 - local.set $1 - local.get $0 - i32.const 255 - i32.and - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 95 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.sub - i32.const 255 - i32.and - i32.const 255 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 97 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + i32.const 24 + i32.const 16 + i32.const 2 + call $~lib/builtins/abort + unreachable end - block + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + local.set $1 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 127 + i32.eq + i32.eqz + if i32.const 0 - local.set $1 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - local.get $1 - i32.const 65535 - i32.and - i32.const 65535 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 106 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $1 - i32.const 65535 - i32.and + i32.const 24 + i32.const 19 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 109 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $1 - local.tee $2 - i32.const 1 - i32.sub - local.set $1 - local.get $2 - end - local.set $0 - local.get $1 - i32.const 65535 - i32.and - i32.const 65535 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 112 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $2 - end - local.set $0 - local.get $1 - i32.const 65535 - i32.and + i32.const 24 + i32.const 22 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 127 + i32.eq + i32.eqz + if i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 115 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - local.get $1 - i32.const 65535 - i32.and - i32.const 65535 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 118 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $1 - i32.const 65535 - i32.and + i32.const 24 + i32.const 25 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.tee $0 + local.set $1 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 121 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - local.set $0 - local.get $1 - i32.const 65535 - i32.and - i32.const 65535 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 124 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.tee $1 - local.set $0 - local.get $1 - i32.const 65535 - i32.and + i32.const 24 + i32.const 28 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + local.set $1 + local.get $0 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const 127 + i32.eq + i32.eqz + if i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 127 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.sub - i32.const 65535 - i32.and - i32.const 65535 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 129 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + i32.const 24 + i32.const 31 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + i32.const -128 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 33 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 32767 + local.set $1 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 42 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 32767 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 45 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.set $0 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 48 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 1 + i32.sub + local.set $1 + local.get $2 + local.set $0 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 32767 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 51 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 54 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 32767 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 57 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.tee $1 + local.set $0 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 60 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + local.set $0 + local.get $1 + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const 32767 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 63 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + i32.const 16 + i32.shl + i32.const 16 + i32.shr_s + i32.const -32768 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 65 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $0 + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 74 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + local.get $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 77 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + local.set $1 + local.get $0 + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 80 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $2 + local.set $1 + local.get $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 83 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $0 + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 86 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + local.get $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 89 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + local.set $1 + local.get $0 + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 92 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.tee $0 + local.set $1 + local.get $0 + i32.const 255 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 95 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.sub + i32.const 255 + i32.and + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 97 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 106 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 1 + i32.sub + local.set $1 + local.get $2 + local.set $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 112 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.set $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 115 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 118 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 121 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + local.set $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 124 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.tee $1 + local.set $0 + local.get $1 + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 127 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.sub + i32.const 65535 + i32.and + i32.const 65535 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 129 + i32.const 2 + call $~lib/builtins/abort + unreachable end ) (func $start (; 2 ;) (type $FUNCSIG$v) diff --git a/tests/compiler/possibly-null.untouched.wat b/tests/compiler/possibly-null.untouched.wat index b0ef3078..531dcd76 100644 --- a/tests/compiler/possibly-null.untouched.wat +++ b/tests/compiler/possibly-null.untouched.wat @@ -49,13 +49,9 @@ local.get $0 i32.eqz if - block - local.get $0 - call $~lib/rt/stub/__release - return - unreachable - end - unreachable + local.get $0 + call $~lib/rt/stub/__release + return else nop end @@ -69,13 +65,9 @@ local.get $0 i32.eqz if - block - local.get $0 - call $~lib/rt/stub/__release - return - unreachable - end - unreachable + local.get $0 + call $~lib/rt/stub/__release + return end local.get $0 call $~lib/rt/stub/__release @@ -101,13 +93,9 @@ i32.const 0 i32.eq if - block - local.get $0 - call $~lib/rt/stub/__release - return - unreachable - end - unreachable + local.get $0 + call $~lib/rt/stub/__release + return else nop end @@ -122,13 +110,9 @@ i32.const 0 i32.eq if - block - local.get $0 - call $~lib/rt/stub/__release - return - unreachable - end - unreachable + local.get $0 + call $~lib/rt/stub/__release + return end local.get $0 call $~lib/rt/stub/__release @@ -156,13 +140,9 @@ i32.ne i32.eqz if - block - local.get $0 - call $~lib/rt/stub/__release - return - unreachable - end - unreachable + local.get $0 + call $~lib/rt/stub/__release + return else nop end @@ -178,13 +158,9 @@ i32.ne i32.eqz if - block - local.get $0 - call $~lib/rt/stub/__release - return - unreachable - end - unreachable + local.get $0 + call $~lib/rt/stub/__release + return end local.get $0 call $~lib/rt/stub/__release @@ -200,24 +176,21 @@ local.get $0 i32.eqz br_if $break|0 - block (result i32) - i32.const 0 - local.tee $1 - local.get $0 - local.tee $2 - i32.ne - if - local.get $1 - call $~lib/rt/stub/__retain - drop - local.get $2 - call $~lib/rt/stub/__release - end + i32.const 0 + local.tee $1 + local.get $0 + local.tee $2 + i32.ne + if local.get $1 + call $~lib/rt/stub/__retain + drop + local.get $2 + call $~lib/rt/stub/__release end + local.get $1 local.set $0 br $continue|0 - unreachable end unreachable end @@ -238,24 +211,21 @@ local.get $0 i32.eqz br_if $break|0 - block (result i32) - local.get $1 - local.tee $2 - local.get $0 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/stub/__retain - drop - local.get $3 - call $~lib/rt/stub/__release - end + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release end + local.get $2 local.set $0 br $continue|0 - unreachable end unreachable end @@ -280,25 +250,22 @@ br_if $break|0 local.get $1 if - block (result i32) - local.get $1 - local.tee $2 - local.get $0 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/stub/__retain - drop - local.get $3 - call $~lib/rt/stub/__release - end + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release end + local.get $2 local.set $0 end br $continue|0 - unreachable end unreachable end @@ -417,21 +384,19 @@ local.get $1 call $~lib/rt/stub/__retain drop - block (result i32) - local.get $1 - local.tee $2 - local.get $0 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/stub/__retain - drop - local.get $3 - call $~lib/rt/stub/__release - end + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release end + local.get $2 local.set $0 local.get $0 call $~lib/rt/stub/__release diff --git a/tests/compiler/rc/global-init.untouched.wat b/tests/compiler/rc/global-init.untouched.wat index 3f135d28..0fa3947e 100644 --- a/tests/compiler/rc/global-init.untouched.wat +++ b/tests/compiler/rc/global-init.untouched.wat @@ -221,85 +221,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -355,20 +347,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -406,20 +396,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -430,14 +418,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -590,24 +576,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -621,27 +605,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -650,36 +632,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/freeBlock (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) @@ -719,19 +697,11 @@ i32.load i32.gt_u if - block - block - i32.const 136 - i32.const 192 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 136 + i32.const 192 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -779,12 +749,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -881,15 +849,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -949,15 +915,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -967,21 +931,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -991,33 +953,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -1026,7 +985,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -1055,19 +1013,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 232 - i32.const 88 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 232 + i32.const 88 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1164,18 +1114,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1208,18 +1156,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1231,29 +1177,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1271,7 +1194,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1392,34 +1334,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1532,22 +1470,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1555,7 +1489,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1613,7 +1546,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1680,22 +1612,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1727,226 +1655,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1954,15 +1734,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1970,15 +1750,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -1986,10 +1766,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2005,65 +1785,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2071,15 +1856,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2087,15 +1872,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2103,10 +1888,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2122,307 +1907,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2430,148 +2255,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2579,76 +2372,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2656,40 +2433,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2697,22 +2466,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2784,26 +2549,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2831,7 +2591,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2841,22 +2600,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2864,7 +2619,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2903,7 +2657,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2927,7 +2680,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2949,7 +2701,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3193,37 +2944,33 @@ global.set $rc/global-init/a call $rc/global-init/getRef global.set $rc/global-init/b - block (result i32) - i32.const 0 - local.tee $0 - global.get $rc/global-init/a - local.tee $1 - i32.ne - if - local.get $0 - call $~lib/rt/pure/__retain - drop - local.get $1 - call $~lib/rt/pure/__release - end + i32.const 0 + local.tee $0 + global.get $rc/global-init/a + local.tee $1 + i32.ne + if local.get $0 - end - global.set $rc/global-init/a - block (result i32) - i32.const 0 - local.tee $1 - global.get $rc/global-init/b - local.tee $0 - i32.ne - if - local.get $1 - call $~lib/rt/pure/__retain - drop - local.get $0 - call $~lib/rt/pure/__release - end + call $~lib/rt/pure/__retain + drop local.get $1 + call $~lib/rt/pure/__release end + local.get $0 + global.set $rc/global-init/a + i32.const 0 + local.tee $1 + global.get $rc/global-init/b + local.tee $0 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end + local.get $1 global.set $rc/global-init/b ) (func $start (; 28 ;) (type $FUNCSIG$v) @@ -3392,103 +3139,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 40 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 40 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -3504,60 +3231,28 @@ ) (func $~lib/rt/__visit_members (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + return end - block - block - unreachable - unreachable - end - unreachable - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit end - unreachable + return end + unreachable ) (func $null (; 35 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/rc/local-init.untouched.wat b/tests/compiler/rc/local-init.untouched.wat index 16f67d24..9d48bb4b 100644 --- a/tests/compiler/rc/local-init.untouched.wat +++ b/tests/compiler/rc/local-init.untouched.wat @@ -215,85 +215,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -349,20 +341,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -400,20 +390,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -424,14 +412,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -584,24 +570,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -615,27 +599,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -644,36 +626,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/freeBlock (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) @@ -713,19 +691,11 @@ i32.load i32.gt_u if - block - block - i32.const 136 - i32.const 192 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 136 + i32.const 192 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -773,12 +743,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -875,15 +843,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -943,15 +909,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -961,21 +925,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -985,33 +947,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -1020,7 +979,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -1049,19 +1007,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 232 - i32.const 88 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 232 + i32.const 88 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1158,18 +1108,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1202,18 +1150,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1225,29 +1171,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1265,7 +1188,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1386,34 +1328,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1526,22 +1464,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1549,7 +1483,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1607,7 +1540,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1674,22 +1606,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1721,226 +1649,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1948,15 +1728,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1964,15 +1744,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -1980,10 +1760,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -1999,65 +1779,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2065,15 +1850,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2081,15 +1866,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2097,10 +1882,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2116,307 +1901,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2424,148 +2249,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2573,76 +2366,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2650,40 +2427,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2691,22 +2460,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2778,26 +2543,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2825,7 +2585,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2835,22 +2594,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2858,7 +2613,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2897,7 +2651,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2921,7 +2674,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2943,7 +2695,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3198,26 +2949,20 @@ ) (func $start:rc/local-init (; 28 ;) (type $FUNCSIG$v) (local $0 i32) - block - i32.const 24 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - end - block - call $rc/local-init/getRef - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - end - block - i32.const 0 - call $rc/local-init/Ref#constructor - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - end + i32.const 24 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + call $rc/local-init/getRef + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + call $rc/local-init/Ref#constructor + local.set $0 + local.get $0 + call $~lib/rt/pure/__release ) (func $start (; 29 ;) (type $FUNCSIG$v) call $start:rc/local-init @@ -3385,103 +3130,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 40 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 40 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 40 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -3497,60 +3222,28 @@ ) (func $~lib/rt/__visit_members (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + return end - block - block - unreachable - unreachable - end - unreachable - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit end - unreachable + return end + unreachable ) (func $null (; 36 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/rc/logical-and-mismatch.untouched.wat b/tests/compiler/rc/logical-and-mismatch.untouched.wat index 37336485..aff5fca9 100644 --- a/tests/compiler/rc/logical-and-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-and-mismatch.untouched.wat @@ -154,85 +154,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -288,20 +280,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -339,20 +329,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -363,14 +351,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -523,24 +509,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -554,27 +538,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -583,36 +565,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -650,12 +628,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -752,15 +728,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -820,15 +794,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -838,21 +810,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -862,33 +832,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -897,7 +864,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -926,19 +892,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 72 - i32.const 24 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 72 + i32.const 24 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1035,18 +993,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1079,18 +1035,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1102,29 +1056,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1142,7 +1073,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1263,34 +1213,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1502,19 +1448,11 @@ i32.load i32.gt_u if - block - block - i32.const 176 - i32.const 232 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 232 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1542,22 +1480,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1565,7 +1499,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1623,7 +1556,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1690,22 +1622,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1737,226 +1665,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1964,15 +1744,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1980,15 +1760,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -1996,10 +1776,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2015,65 +1795,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2081,15 +1866,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2097,15 +1882,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2113,10 +1898,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2132,307 +1917,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2440,148 +2265,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2589,76 +2382,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2666,40 +2443,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2707,22 +2476,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2794,26 +2559,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2841,7 +2601,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2851,22 +2610,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2874,7 +2629,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2913,7 +2667,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2937,7 +2690,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2959,7 +2711,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3201,61 +2952,53 @@ i32.const 0 call $rc/logical-and-mismatch/Ref#constructor global.set $rc/logical-and-mismatch/gloRef - block - call $rc/logical-and-mismatch/getRef - local.tee $0 - if (result i32) - local.get $0 - call $~lib/rt/pure/__release - global.get $rc/logical-and-mismatch/gloRef - call $~lib/rt/pure/__retain - else - local.get $0 - end - local.set $0 + call $rc/logical-and-mismatch/getRef + local.tee $0 + if (result i32) local.get $0 call $~lib/rt/pure/__release - end - block global.get $rc/logical-and-mismatch/gloRef - local.tee $0 - if (result i32) - call $rc/logical-and-mismatch/getRef - else - local.get $0 - call $~lib/rt/pure/__retain - end - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - end - block - call $rc/logical-and-mismatch/getRef - local.tee $0 - if (result i32) - local.get $0 - call $~lib/rt/pure/__release - call $rc/logical-and-mismatch/getRef - else - local.get $0 - end - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - end - block - global.get $rc/logical-and-mismatch/gloRef - local.tee $0 - if (result i32) - global.get $rc/logical-and-mismatch/gloRef - else - local.get $0 - end call $~lib/rt/pure/__retain - local.set $0 + else + local.get $0 + end + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + global.get $rc/logical-and-mismatch/gloRef + local.tee $0 + if (result i32) + call $rc/logical-and-mismatch/getRef + else + local.get $0 + call $~lib/rt/pure/__retain + end + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + call $rc/logical-and-mismatch/getRef + local.tee $0 + if (result i32) local.get $0 call $~lib/rt/pure/__release + call $rc/logical-and-mismatch/getRef + else + local.get $0 end + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + global.get $rc/logical-and-mismatch/gloRef + local.tee $0 + if (result i32) + global.get $rc/logical-and-mismatch/gloRef + else + local.get $0 + end + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__release global.get $rc/logical-and-mismatch/gloRef call $~lib/rt/pure/__release ) @@ -3425,103 +3168,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -3537,60 +3260,28 @@ ) (func $~lib/rt/__visit_members (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + return end - block - block - unreachable - unreachable - end - unreachable - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit end - unreachable + return end + unreachable ) (func $null (; 36 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/rc/logical-or-mismatch.untouched.wat b/tests/compiler/rc/logical-or-mismatch.untouched.wat index 84bb992d..1960f0fb 100644 --- a/tests/compiler/rc/logical-or-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-or-mismatch.untouched.wat @@ -154,85 +154,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -288,20 +280,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -339,20 +329,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -363,14 +351,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -523,24 +509,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -554,27 +538,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -583,36 +565,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -650,12 +628,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -752,15 +728,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -820,15 +794,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -838,21 +810,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -862,33 +832,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -897,7 +864,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -926,19 +892,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 72 - i32.const 24 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 72 + i32.const 24 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1035,18 +993,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1079,18 +1035,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1102,29 +1056,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1142,7 +1073,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1263,34 +1213,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1502,19 +1448,11 @@ i32.load i32.gt_u if - block - block - i32.const 176 - i32.const 232 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 232 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1542,22 +1480,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1565,7 +1499,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1623,7 +1556,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1690,22 +1622,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1737,226 +1665,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1964,15 +1744,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1980,15 +1760,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -1996,10 +1776,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2015,65 +1795,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2081,15 +1866,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2097,15 +1882,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2113,10 +1898,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2132,307 +1917,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2440,148 +2265,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2589,76 +2382,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2666,40 +2443,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2707,22 +2476,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2794,26 +2559,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2841,7 +2601,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2851,22 +2610,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2874,7 +2629,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2913,7 +2667,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2937,7 +2690,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2959,7 +2711,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3201,61 +2952,53 @@ i32.const 0 call $rc/logical-or-mismatch/Ref#constructor global.set $rc/logical-or-mismatch/gloRef - block - call $rc/logical-or-mismatch/getRef - local.tee $0 - if (result i32) - local.get $0 - else - local.get $0 - call $~lib/rt/pure/__release - global.get $rc/logical-or-mismatch/gloRef - call $~lib/rt/pure/__retain - end - local.set $0 + call $rc/logical-or-mismatch/getRef + local.tee $0 + if (result i32) + local.get $0 + else local.get $0 call $~lib/rt/pure/__release - end - block global.get $rc/logical-or-mismatch/gloRef - local.tee $0 - if (result i32) - local.get $0 - call $~lib/rt/pure/__retain - else - call $rc/logical-or-mismatch/getRef - end - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - end - block - call $rc/logical-or-mismatch/getRef - local.tee $0 - if (result i32) - local.get $0 - else - local.get $0 - call $~lib/rt/pure/__release - call $rc/logical-or-mismatch/getRef - end - local.set $0 - local.get $0 - call $~lib/rt/pure/__release - end - block - global.get $rc/logical-or-mismatch/gloRef - local.tee $0 - if (result i32) - local.get $0 - else - global.get $rc/logical-or-mismatch/gloRef - end call $~lib/rt/pure/__retain - local.set $0 + end + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + global.get $rc/logical-or-mismatch/gloRef + local.tee $0 + if (result i32) + local.get $0 + call $~lib/rt/pure/__retain + else + call $rc/logical-or-mismatch/getRef + end + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + call $rc/logical-or-mismatch/getRef + local.tee $0 + if (result i32) + local.get $0 + else local.get $0 call $~lib/rt/pure/__release + call $rc/logical-or-mismatch/getRef end + local.set $0 + local.get $0 + call $~lib/rt/pure/__release + global.get $rc/logical-or-mismatch/gloRef + local.tee $0 + if (result i32) + local.get $0 + else + global.get $rc/logical-or-mismatch/gloRef + end + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + call $~lib/rt/pure/__release global.get $rc/logical-or-mismatch/gloRef call $~lib/rt/pure/__release ) @@ -3425,103 +3168,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -3537,60 +3260,28 @@ ) (func $~lib/rt/__visit_members (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + return end - block - block - unreachable - unreachable - end - unreachable - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit end - unreachable + return end + unreachable ) (func $null (; 36 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/rc/rereturn.untouched.wat b/tests/compiler/rc/rereturn.untouched.wat index 02722174..07dadcff 100644 --- a/tests/compiler/rc/rereturn.untouched.wat +++ b/tests/compiler/rc/rereturn.untouched.wat @@ -154,85 +154,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -288,20 +280,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -339,20 +329,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -363,14 +351,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -523,24 +509,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -554,27 +538,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -583,36 +565,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 3 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -650,12 +628,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -752,15 +728,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -820,15 +794,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -838,21 +810,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -862,33 +832,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -897,7 +864,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -926,19 +892,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 72 - i32.const 24 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 72 + i32.const 24 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1035,18 +993,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1079,18 +1035,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1102,29 +1056,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1142,7 +1073,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1263,34 +1213,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1480,19 +1426,11 @@ i32.load i32.gt_u if - block - block - i32.const 176 - i32.const 232 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 232 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1520,22 +1458,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1543,7 +1477,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1601,7 +1534,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1668,22 +1600,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1715,226 +1643,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1942,15 +1722,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1958,15 +1738,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -1974,10 +1754,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -1993,65 +1773,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2059,15 +1844,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2075,15 +1860,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2091,10 +1876,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2110,307 +1895,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2418,148 +2243,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2567,76 +2360,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2644,40 +2421,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2685,22 +2454,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2772,26 +2537,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2819,7 +2579,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2829,22 +2588,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2852,7 +2607,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2891,7 +2645,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2915,7 +2668,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2937,7 +2689,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3295,12 +3046,10 @@ local.get $0 local.set $1 block $break|0 - block - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - end + local.get $1 + local.set $2 + global.get $~lib/rt/pure/CUR + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -3370,7 +3119,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -3393,7 +3141,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -3424,7 +3171,6 @@ i32.add local.set $5 br $loop|2 - unreachable end unreachable end @@ -3501,103 +3247,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -3613,60 +3339,28 @@ ) (func $~lib/rt/__visit_members (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + return end - block - block - unreachable - unreachable - end - unreachable - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit end - unreachable + return end + unreachable ) (func $null (; 34 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/rc/ternary-mismatch.untouched.wat b/tests/compiler/rc/ternary-mismatch.untouched.wat index 1c7ab84b..ac385544 100644 --- a/tests/compiler/rc/ternary-mismatch.untouched.wat +++ b/tests/compiler/rc/ternary-mismatch.untouched.wat @@ -156,85 +156,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -290,20 +282,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -341,20 +331,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -365,14 +353,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -525,24 +511,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -556,27 +540,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -585,36 +567,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -652,12 +630,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -754,15 +730,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -822,15 +796,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -840,21 +812,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -864,33 +834,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -899,7 +866,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -928,19 +894,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 72 - i32.const 24 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 72 + i32.const 24 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1037,18 +995,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1081,18 +1037,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1104,29 +1058,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1144,7 +1075,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1265,34 +1215,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1513,19 +1459,11 @@ i32.load i32.gt_u if - block - block - i32.const 176 - i32.const 232 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 232 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1553,22 +1491,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1576,7 +1510,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1634,7 +1567,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1701,22 +1633,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1748,226 +1676,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1975,15 +1755,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1991,15 +1771,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -2007,10 +1787,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2026,65 +1806,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2092,15 +1877,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2108,15 +1893,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2124,10 +1909,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2143,307 +1928,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2451,148 +2276,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2600,76 +2393,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2677,40 +2454,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2718,22 +2487,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2805,26 +2570,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2852,7 +2612,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2862,22 +2621,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2885,7 +2640,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2924,7 +2678,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2948,7 +2701,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2970,7 +2722,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3401,103 +3152,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -3513,60 +3244,28 @@ ) (func $~lib/rt/__visit_members (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + return end - block - block - unreachable - unreachable - end - unreachable - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit end - unreachable + return end + unreachable ) (func $null (; 38 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/retain-i32.untouched.wat b/tests/compiler/retain-i32.untouched.wat index a3666d76..fdad18d4 100644 --- a/tests/compiler/retain-i32.untouched.wat +++ b/tests/compiler/retain-i32.untouched.wat @@ -451,7 +451,6 @@ i32.add local.set $0 br $loop|0 - unreachable end unreachable end diff --git a/tests/compiler/retain-release-sanity.optimized.wat b/tests/compiler/retain-release-sanity.optimized.wat index c0f0f1fa..55e4754d 100644 --- a/tests/compiler/retain-release-sanity.optimized.wat +++ b/tests/compiler/retain-release-sanity.optimized.wat @@ -1788,14 +1788,12 @@ i32.and local.tee $1 i32.sub - local.set $2 local.get $0 local.get $1 i32.add local.tee $0 i32.const 0 i32.store - local.get $2 i32.const -4 i32.and local.tee $1 @@ -2112,10 +2110,8 @@ if i32.const 584 call $~lib/rt/pure/__retain - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 return end local.get $2 @@ -2150,12 +2146,10 @@ select local.get $1 call $~lib/string/String#concat - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 ) (func $~lib/rt/pure/markGray (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) @@ -2424,7 +2418,6 @@ i32.const 0 i32.store offset=12 local.get $0 - local.set $1 loop $loop|0 local.get $3 i32.const 10 @@ -2467,7 +2460,6 @@ br $loop|0 end end - local.get $1 call $~lib/rt/pure/__release i32.const 600 call $~lib/rt/pure/__retain @@ -2479,14 +2471,12 @@ local.tee $2 i32.const 672 call $~lib/string/String.__concat - local.set $3 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $3 call $~lib/rt/pure/__release i32.const 4 i32.const 6 @@ -2496,7 +2486,6 @@ i32.const 0 i32.store local.get $0 - local.set $3 i32.const 4 i32.const 7 call $~lib/rt/tlsf/__alloc @@ -2518,7 +2507,6 @@ local.get $4 call $~lib/rt/pure/__release end - local.get $3 local.get $2 i32.store local.get $0 diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index 055679b3..42543afa 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -162,85 +162,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -296,20 +288,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -347,20 +337,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -371,14 +359,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -531,24 +517,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -562,27 +546,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -591,36 +573,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -658,12 +636,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -760,15 +736,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -828,15 +802,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -846,21 +818,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -870,33 +840,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -905,7 +872,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -934,19 +900,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 176 - i32.const 128 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 128 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1043,18 +1001,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1087,18 +1043,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1110,29 +1064,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1150,7 +1081,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1271,34 +1221,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1494,19 +1440,11 @@ i32.load i32.gt_u if - block - block - i32.const 280 - i32.const 336 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 336 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1534,22 +1472,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1557,7 +1491,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1615,7 +1548,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1682,22 +1614,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1729,226 +1657,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1956,15 +1736,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1972,15 +1752,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -1988,10 +1768,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2007,65 +1787,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2073,15 +1858,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2089,15 +1874,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2105,10 +1890,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2124,307 +1909,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2432,148 +2257,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2581,76 +2374,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2658,40 +2435,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2699,22 +2468,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2786,26 +2551,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2833,7 +2593,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2843,22 +2602,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2866,7 +2621,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2905,7 +2659,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2929,7 +2682,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2951,7 +2703,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3198,19 +2949,11 @@ i32.shr_u i32.gt_u if - block - block - i32.const 24 - i32.const 72 - i32.const 14 - i32.const 56 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 72 + i32.const 14 + i32.const 56 + call $~lib/builtins/abort unreachable end local.get $1 @@ -3220,44 +2963,40 @@ i32.const 0 call $~lib/rt/tlsf/__alloc local.set $3 - block (result i32) - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 local.tee $4 - block (result i32) - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $4 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - drop - local.get $4 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release end + local.get $5 i32.store local.get $0 local.get $3 @@ -3331,20 +3070,18 @@ local.get $1 return end - block $~lib/rt/tlsf/GETRIGHT|inlined.4 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $6 local.get $6 i32.load @@ -3721,7 +3458,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -3747,19 +3483,11 @@ i32.shr_u i32.gt_u if - block - block - i32.const 24 - i32.const 376 - i32.const 14 - i32.const 47 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 376 + i32.const 14 + i32.const 47 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3835,19 +3563,11 @@ i32.const 1 i32.lt_s if - block - block - i32.const 424 - i32.const 376 - i32.const 287 - i32.const 20 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 424 + i32.const 376 + i32.const 287 + i32.const 20 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3885,19 +3605,11 @@ i32.store offset=12 local.get $1 if - block - block - i32.const 472 - i32.const 376 - i32.const 56 - i32.const 20 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 472 + i32.const 376 + i32.const 56 + i32.const 20 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3924,19 +3636,11 @@ i32.store offset=12 local.get $1 if - block - block - i32.const 472 - i32.const 376 - i32.const 56 - i32.const 20 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 472 + i32.const 376 + i32.const 56 + i32.const 20 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4002,21 +3706,19 @@ i32.const 0 i32.eq if - block (result i32) - i32.const 648 - local.tee $2 - local.get $1 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - drop - local.get $3 - call $~lib/rt/pure/__release - end + i32.const 648 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release end + local.get $2 local.set $1 end local.get $0 @@ -4037,17 +3739,13 @@ i32.const 0 i32.eq if - block - i32.const 584 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 584 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $6 i32.const 1 @@ -4254,12 +3952,10 @@ local.get $0 local.set $1 block $break|0 - block - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - end + local.get $1 + local.set $2 + global.get $~lib/rt/pure/CUR + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -4329,7 +4025,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -4352,7 +4047,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -4383,7 +4077,6 @@ i32.add local.set $5 br $loop|2 - unreachable end unreachable end @@ -4395,229 +4088,207 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block + i32.const 0 + i32.const 3 + call $~lib/array/Array#constructor + local.set $0 + local.get $0 + i32.const 123 + call $~lib/array/Array#push + drop + local.get $0 + i32.const 123 + call $~lib/array/Array#push + drop + local.get $0 + call $~lib/array/Array#pop + drop + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 0 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#constructor + local.set $0 + block $break|0 i32.const 0 - i32.const 3 - call $~lib/array/Array#constructor - local.set $0 - local.get $0 - i32.const 123 - call $~lib/array/Array#push - drop - local.get $0 - i32.const 123 - call $~lib/array/Array#push - drop - local.get $0 - call $~lib/array/Array#pop - drop - local.get $0 - call $~lib/rt/pure/__release - end - block - i32.const 0 - i32.const 0 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#constructor - local.set $0 - block $break|0 + local.set $1 + loop $loop|0 + local.get $1 + i32.const 10 + i32.lt_s + i32.eqz + br_if $break|0 i32.const 0 - local.set $1 - loop $loop|0 - local.get $1 - i32.const 10 - i32.lt_s - i32.eqz - br_if $break|0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#constructor + local.set $2 + block $break|1 i32.const 0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#constructor - local.set $2 - block $break|1 - i32.const 0 + local.set $3 + loop $loop|1 + local.get $3 + i32.const 10 + i32.lt_s + i32.eqz + br_if $break|1 + local.get $2 + i32.const 584 + call $~lib/array/Array<~lib/string/String>#push + drop + local.get $3 + i32.const 1 + i32.add local.set $3 - loop $loop|1 - local.get $3 - i32.const 10 - i32.lt_s - i32.eqz - br_if $break|1 - local.get $2 - i32.const 584 - call $~lib/array/Array<~lib/string/String>#push - drop - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $loop|1 - unreachable - end - unreachable + br $loop|1 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $2 - call $~lib/rt/pure/__release - br $loop|0 unreachable end - unreachable + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $2 + call $~lib/rt/pure/__release + br $loop|0 end + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + i32.const 600 + call $~lib/rt/pure/__retain + local.set $0 + local.get $0 + i32.const 624 + call $~lib/string/String.__concat + local.tee $2 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 672 + call $~lib/string/String.__concat + local.tee $3 + drop + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + i32.const 0 + call $retain-release-sanity/A#constructor + local.set $3 + i32.const 0 + call $retain-release-sanity/B#constructor + local.set $1 + local.get $3 + local.tee $2 + local.get $1 + local.tee $0 + local.get $2 + i32.load + local.tee $2 + i32.ne + if local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $2 call $~lib/rt/pure/__release end - block - i32.const 600 + local.get $0 + i32.store + local.get $3 + local.tee $0 + local.get $1 + local.tee $2 + local.get $0 + i32.load + local.tee $0 + i32.ne + if + local.get $2 call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - i32.const 624 - call $~lib/string/String.__concat - local.tee $2 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 672 - call $~lib/string/String.__concat - local.tee $3 drop local.get $0 call $~lib/rt/pure/__release + end + local.get $2 + i32.store + local.get $1 + local.tee $2 + local.get $3 + local.tee $0 + local.get $2 + i32.load + local.tee $2 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop local.get $2 call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 + end + local.get $0 + i32.store + local.get $1 + local.tee $0 + local.get $3 + local.tee $2 + local.get $0 + i32.load + local.tee $0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $0 call $~lib/rt/pure/__release end - block - i32.const 0 - call $retain-release-sanity/A#constructor - local.set $3 - i32.const 0 - call $retain-release-sanity/B#constructor - local.set $1 - local.get $3 - local.tee $2 - block (result i32) - local.get $1 - local.tee $0 - local.get $2 - i32.load - local.tee $2 - i32.ne - if - local.get $0 - call $~lib/rt/pure/__retain - drop - local.get $2 - call $~lib/rt/pure/__release - end - local.get $0 - end - i32.store - local.get $3 - local.tee $0 - block (result i32) - local.get $1 - local.tee $2 - local.get $0 - i32.load - local.tee $0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - drop - local.get $0 - call $~lib/rt/pure/__release - end - local.get $2 - end - i32.store - local.get $1 - local.tee $2 - block (result i32) - local.get $3 - local.tee $0 - local.get $2 - i32.load - local.tee $2 - i32.ne - if - local.get $0 - call $~lib/rt/pure/__retain - drop - local.get $2 - call $~lib/rt/pure/__release - end - local.get $0 - end - i32.store - local.get $1 - local.tee $0 - block (result i32) - local.get $3 - local.tee $2 - local.get $0 - i32.load - local.tee $0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - drop - local.get $0 - call $~lib/rt/pure/__release - end - local.get $2 - end - i32.store - local.get $3 - local.tee $2 - block (result i32) - local.get $1 - local.tee $0 - local.get $2 - i32.load - local.tee $2 - i32.ne - if - local.get $0 - call $~lib/rt/pure/__retain - drop - local.get $2 - call $~lib/rt/pure/__release - end - local.get $0 - end - i32.store - local.get $1 - local.tee $0 - block (result i32) - local.get $3 - local.tee $2 - local.get $0 - i32.load - local.tee $0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - drop - local.get $0 - call $~lib/rt/pure/__release - end - local.get $2 - end - i32.store - local.get $3 - call $~lib/rt/pure/__release - local.get $1 + local.get $2 + i32.store + local.get $3 + local.tee $2 + local.get $1 + local.tee $0 + local.get $2 + i32.load + local.tee $2 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $2 call $~lib/rt/pure/__release end + local.get $0 + i32.store + local.get $1 + local.tee $0 + local.get $3 + local.tee $2 + local.get $0 + i32.load + local.tee $0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/rt/pure/__release + end + local.get $2 + i32.store + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release call $~lib/rt/pure/__collect ) (func $start (; 48 ;) (type $FUNCSIG$v) @@ -4670,103 +4341,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 232 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 232 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 232 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 232 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -4815,7 +4466,6 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end @@ -4855,7 +4505,6 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end @@ -4863,116 +4512,48 @@ (func $~lib/rt/__visit_members (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$7 - block $switch$1$case$6 - block $switch$1$case$5 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$7 $switch$1$case$4 $switch$1$case$4 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable - end - block - br $block$4$break - unreachable - end - unreachable - end - block - block + block $switch$1$default + block $switch$1$case$7 + block $switch$1$case$6 + block $switch$1$case$5 + block $switch$1$case$4 + block $switch$1$case$2 local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$7 $switch$1$case$4 $switch$1$case$4 $switch$1$default end - unreachable - unreachable + return end - unreachable + br $block$4$break end - block - block - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + br $block$4$break end - block - block - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - end - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 + local.get $0 local.get $1 - call $~lib/rt/pure/__visit + call $~lib/array/Array<~lib/string/String>#__visit_impl + br $block$4$break end - return - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__visit_impl + br $block$4$break end unreachable - unreachable end - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end + return ) (func $null (; 54 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/retain-release.optimized.wat b/tests/compiler/retain-release.optimized.wat index dec4930c..ec435905 100644 --- a/tests/compiler/retain-release.optimized.wat +++ b/tests/compiler/retain-release.optimized.wat @@ -152,8 +152,6 @@ (func $retain-release/assignGlobal (; 8 ;) (type $FUNCSIG$v) (local $0 i32) global.get $retain-release/REF - local.set $0 - local.get $0 global.set $retain-release/glo ) (func $retain-release/assignField (; 9 ;) (type $FUNCSIG$v) diff --git a/tests/compiler/retain-release.untouched.wat b/tests/compiler/retain-release.untouched.wat index e7a70eaa..f8f33c11 100644 --- a/tests/compiler/retain-release.untouched.wat +++ b/tests/compiler/retain-release.untouched.wat @@ -257,21 +257,19 @@ (func $retain-release/assignGlobal (; 16 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) - block (result i32) - global.get $retain-release/REF - local.tee $0 - global.get $retain-release/glo - local.tee $1 - i32.ne - if - local.get $0 - call $~lib/rt/stub/__retain - drop - local.get $1 - call $~lib/rt/stub/__release - end + global.get $retain-release/REF + local.tee $0 + global.get $retain-release/glo + local.tee $1 + i32.ne + if local.get $0 + call $~lib/rt/stub/__retain + drop + local.get $1 + call $~lib/rt/stub/__release end + local.get $0 global.set $retain-release/glo ) (func $retain-release/assignField (; 17 ;) (type $FUNCSIG$v) @@ -279,22 +277,20 @@ (local $1 i32) global.get $retain-release/TARGET local.tee $0 - block (result i32) - global.get $retain-release/REF - local.tee $1 - local.get $0 - i32.load - local.tee $0 - i32.ne - if - local.get $1 - call $~lib/rt/stub/__retain - drop - local.get $0 - call $~lib/rt/stub/__release - end + global.get $retain-release/REF + local.tee $1 + local.get $0 + i32.load + local.tee $0 + i32.ne + if local.get $1 + call $~lib/rt/stub/__retain + drop + local.get $0 + call $~lib/rt/stub/__release end + local.get $1 i32.store ) (func $retain-release/scopeBlock (; 18 ;) (type $FUNCSIG$v) @@ -315,21 +311,19 @@ global.get $retain-release/REF call $~lib/rt/stub/__retain local.set $1 - block (result i32) - local.get $1 - local.tee $2 - local.get $0 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/stub/__retain - drop - local.get $3 - call $~lib/rt/stub/__release - end + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release end + local.get $2 local.set $0 local.get $1 call $~lib/rt/stub/__release @@ -347,21 +341,19 @@ global.get $retain-release/REF call $~lib/rt/stub/__retain local.set $1 - block (result i32) - local.get $1 - local.tee $2 - local.get $0 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/stub/__retain - drop - local.get $3 - call $~lib/rt/stub/__release - end + local.get $1 + local.tee $2 + local.get $0 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release end + local.get $2 local.set $0 local.get $1 call $~lib/rt/stub/__release @@ -377,41 +369,37 @@ local.set $1 local.get $0 if - block (result i32) - global.get $retain-release/REF - local.tee $2 - local.get $1 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/stub/__retain - drop - local.get $3 - call $~lib/rt/stub/__release - end + global.get $retain-release/REF + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release end + local.get $2 local.set $1 end global.get $retain-release/REF call $~lib/rt/stub/__retain local.set $2 - block (result i32) - local.get $2 - local.tee $3 - local.get $1 - local.tee $4 - i32.ne - if - local.get $3 - call $~lib/rt/stub/__retain - drop - local.get $4 - call $~lib/rt/stub/__release - end + local.get $2 + local.tee $3 + local.get $1 + local.tee $4 + i32.ne + if local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release end + local.get $3 local.set $1 local.get $2 call $~lib/rt/stub/__release @@ -441,21 +429,19 @@ local.set $1 local.get $0 if - block (result i32) - global.get $retain-release/REF - local.tee $2 - local.get $1 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/stub/__retain - drop - local.get $3 - call $~lib/rt/stub/__release - end + global.get $retain-release/REF + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release end + local.get $2 local.set $1 end local.get $1 @@ -502,7 +488,6 @@ local.get $1 call $~lib/rt/stub/__release br $continue|0 - unreachable end unreachable end @@ -530,7 +515,6 @@ local.get $1 call $~lib/rt/stub/__release br $loop|0 - unreachable end unreachable end @@ -538,20 +522,15 @@ (func $retain-release/scopeBreak (; 30 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) block $break|0 - loop $continue|0 - local.get $0 - i32.eqz - br_if $break|0 - global.get $retain-release/REF - call $~lib/rt/stub/__retain - local.set $1 - local.get $1 - call $~lib/rt/stub/__release - br $break|0 - br $continue|0 - unreachable - end - unreachable + local.get $0 + i32.eqz + br_if $break|0 + global.get $retain-release/REF + call $~lib/rt/stub/__retain + local.set $1 + local.get $1 + call $~lib/rt/stub/__release + br $break|0 end ) (func $retain-release/scopeContinue (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) @@ -567,7 +546,6 @@ local.get $1 call $~lib/rt/stub/__release br $continue|0 - unreachable end unreachable end @@ -575,27 +553,19 @@ (func $retain-release/scopeThrow (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) block $break|0 - block - local.get $0 - i32.eqz - br_if $break|0 - global.get $retain-release/REF - call $~lib/rt/stub/__retain - local.set $1 - local.get $1 - call $~lib/rt/stub/__release - block - i32.const 24 - i32.const 56 - i32.const 313 - i32.const 4 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + local.get $0 + i32.eqz + br_if $break|0 + global.get $retain-release/REF + call $~lib/rt/stub/__retain + local.set $1 + local.get $1 + call $~lib/rt/stub/__release + i32.const 24 + i32.const 56 + i32.const 313 + i32.const 4 + call $~lib/builtins/abort unreachable end ) @@ -610,10 +580,6 @@ call $~lib/rt/stub/__retain local.set $1 unreachable - local.get $1 - call $~lib/rt/stub/__release - br $continue|0 - unreachable end unreachable end @@ -636,10 +602,8 @@ ) (func $retain-release/receiveRefInline (; 36 ;) (type $FUNCSIG$v) (local $0 i32) - block $retain-release/returnRefInline|inlined.0 (result i32) - global.get $retain-release/REF - call $~lib/rt/stub/__retain - end + global.get $retain-release/REF + call $~lib/rt/stub/__retain local.tee $0 i32.eqz drop @@ -647,10 +611,8 @@ call $~lib/rt/stub/__release ) (func $retain-release/receiveRefInlineDrop (; 37 ;) (type $FUNCSIG$v) - block $retain-release/returnRefInline|inlined.1 (result i32) - global.get $retain-release/REF - call $~lib/rt/stub/__retain - end + global.get $retain-release/REF + call $~lib/rt/stub/__retain call $~lib/rt/stub/__release ) (func $retain-release/provideRefIndirect (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) @@ -662,13 +624,11 @@ ) (func $retain-release/receiveRefIndirect (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) - block (result i32) - i32.const 0 - global.set $~lib/argc - local.get $0 - call_indirect (type $FUNCSIG$i) - local.tee $1 - end + i32.const 0 + global.set $~lib/argc + local.get $0 + call_indirect (type $FUNCSIG$i) + local.tee $1 i32.eqz drop local.get $1 diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat index 7c088e22..acaa8057 100644 --- a/tests/compiler/rt/instanceof.untouched.wat +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -238,11 +238,9 @@ i32.const 0 call $rt/instanceof/BlackCat#constructor global.set $rt/instanceof/blackcat - block (result i32) - global.get $rt/instanceof/animal - drop - i32.const 1 - end + global.get $rt/instanceof/animal + drop + i32.const 1 i32.eqz if i32.const 0 @@ -292,11 +290,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $rt/instanceof/cat - drop - i32.const 1 - end + global.get $rt/instanceof/cat + drop + i32.const 1 i32.eqz if i32.const 0 @@ -345,11 +341,9 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $rt/instanceof/blackcat - drop - i32.const 1 - end + global.get $rt/instanceof/blackcat + drop + i32.const 1 i32.eqz if i32.const 0 diff --git a/tests/compiler/runtime-full.untouched.wat b/tests/compiler/runtime-full.untouched.wat index c066f893..252b6ae2 100644 --- a/tests/compiler/runtime-full.untouched.wat +++ b/tests/compiler/runtime-full.untouched.wat @@ -152,85 +152,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -286,20 +278,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -337,20 +327,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -361,14 +349,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -521,24 +507,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -552,27 +536,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -581,36 +563,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 3 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -648,12 +626,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -750,15 +726,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -818,15 +792,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -836,21 +808,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -860,33 +830,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -895,7 +862,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -924,19 +890,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 72 - i32.const 24 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 72 + i32.const 24 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1033,18 +991,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1077,18 +1033,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1100,29 +1054,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1140,7 +1071,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1261,34 +1211,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1478,19 +1424,11 @@ i32.load i32.gt_u if - block - block - i32.const 176 - i32.const 232 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 232 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1518,22 +1456,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1541,7 +1475,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1599,7 +1532,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1666,22 +1598,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1713,226 +1641,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1940,15 +1720,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1956,15 +1736,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -1972,10 +1752,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -1991,65 +1771,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2057,15 +1842,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2073,15 +1858,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2089,10 +1874,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2108,307 +1893,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2416,148 +2241,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2565,76 +2358,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2642,40 +2419,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2683,22 +2452,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2770,26 +2535,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2817,7 +2577,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2827,22 +2586,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2850,7 +2605,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2889,7 +2643,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2913,7 +2666,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2935,7 +2687,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3293,12 +3044,10 @@ local.get $0 local.set $1 block $break|0 - block - local.get $1 - local.set $2 - global.get $~lib/rt/pure/CUR - local.set $3 - end + local.get $1 + local.set $2 + global.get $~lib/rt/pure/CUR + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -3368,7 +3117,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -3391,7 +3139,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -3422,7 +3169,6 @@ i32.add local.set $5 br $loop|2 - unreachable end unreachable end @@ -3473,103 +3219,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -3585,60 +3311,28 @@ ) (func $~lib/rt/__visit_members (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + return end - block - block - unreachable - unreachable - end - unreachable - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit end - unreachable + return end + unreachable ) (func $null (; 29 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/scoped.untouched.wat b/tests/compiler/scoped.untouched.wat index 87adfa2a..61a431f4 100644 --- a/tests/compiler/scoped.untouched.wat +++ b/tests/compiler/scoped.untouched.wat @@ -36,7 +36,6 @@ i32.add local.set $0 br $loop|0 - unreachable end unreachable end @@ -56,16 +55,13 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end - block - i64.const 5 - local.set $2 - f32.const 10 - local.set $3 - end + i64.const 5 + local.set $2 + f32.const 10 + local.set $3 i32.const 42 call $scoped/fn ) diff --git a/tests/compiler/std/array-access.untouched.wat b/tests/compiler/std/array-access.untouched.wat index 415e31f1..41090631 100644 --- a/tests/compiler/std/array-access.untouched.wat +++ b/tests/compiler/std/array-access.untouched.wat @@ -41,19 +41,11 @@ i32.load offset=12 i32.ge_u if - block - block - i32.const 24 - i32.const 136 - i32.const 106 - i32.const 45 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 136 + i32.const 106 + i32.const 45 + call $~lib/builtins/abort unreachable end local.get $1 @@ -63,19 +55,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 184 - i32.const 136 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 184 + i32.const 136 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -99,19 +83,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 184 - i32.const 136 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 184 + i32.const 136 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -156,19 +132,11 @@ i32.load offset=12 i32.ge_u if - block - block - i32.const 24 - i32.const 136 - i32.const 106 - i32.const 45 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 136 + i32.const 106 + i32.const 45 + call $~lib/builtins/abort unreachable end local.get $1 @@ -178,19 +146,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 184 - i32.const 136 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 184 + i32.const 136 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -277,7 +237,6 @@ i32.add local.set $7 br $continue|0 - unreachable end unreachable end @@ -314,21 +273,19 @@ i32.const 0 i32.eq if - block (result i32) - i32.const 304 - local.tee $3 - local.get $1 - local.tee $4 - i32.ne - if - local.get $3 - call $~lib/rt/stub/__retain - drop - local.get $4 - call $~lib/rt/stub/__release - end + i32.const 304 + local.tee $3 + local.get $1 + local.tee $4 + i32.ne + if local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release end + local.get $3 local.set $1 end local.get $0 @@ -359,16 +316,12 @@ local.get $5 i32.gt_s if - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/rt/stub/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $1 + call $~lib/rt/stub/__release + local.get $3 + return end local.get $0 local.get $6 @@ -418,19 +371,11 @@ i32.load offset=12 i32.ge_u if - block - block - i32.const 24 - i32.const 136 - i32.const 106 - i32.const 45 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 136 + i32.const 106 + i32.const 45 + call $~lib/builtins/abort unreachable end local.get $1 @@ -440,19 +385,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 184 - i32.const 136 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 184 + i32.const 136 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index e59b4123..d915e5a6 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -68,19 +68,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 136 - i32.const 192 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 136 + i32.const 192 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -108,19 +100,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 136 - i32.const 192 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 136 + i32.const 192 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -249,85 +233,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -383,20 +359,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -434,20 +408,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -458,14 +430,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -618,24 +588,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -649,27 +617,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -678,36 +644,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -745,12 +707,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -847,15 +807,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -915,15 +873,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -933,21 +889,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -957,33 +911,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -992,7 +943,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -1021,19 +971,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 400 - i32.const 352 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 400 + i32.const 352 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1130,18 +1072,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1174,18 +1114,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1197,29 +1135,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1237,7 +1152,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1358,34 +1292,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1559,22 +1489,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1582,7 +1508,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1640,7 +1565,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1707,22 +1631,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1754,226 +1674,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1981,15 +1753,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1997,15 +1769,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -2013,10 +1785,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2032,65 +1804,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2098,15 +1875,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2114,15 +1891,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2130,10 +1907,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2149,307 +1926,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2457,148 +2274,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2606,76 +2391,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2683,40 +2452,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2724,22 +2485,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2811,26 +2568,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2858,7 +2610,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2868,22 +2619,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2891,7 +2638,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2930,7 +2676,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2954,7 +2699,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2976,7 +2720,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3091,19 +2834,11 @@ i32.load i32.gt_u if - block - block - i32.const 136 - i32.const 504 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 136 + i32.const 504 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -3477,39 +3212,33 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 3 - i32.const 0 - i32.const 3 - i32.const 0 - call $~lib/rt/__allocArray - local.set $1 - local.get $1 - i32.load offset=4 - local.set $0 - local.get $0 - global.get $std/array-literal/i - i32.store8 - local.get $0 - block (result i32) - global.get $std/array-literal/i - i32.const 1 - i32.add - global.set $std/array-literal/i - global.get $std/array-literal/i - end - i32.store8 offset=1 - local.get $0 - block (result i32) - global.get $std/array-literal/i - i32.const 1 - i32.add - global.set $std/array-literal/i - global.get $std/array-literal/i - end - i32.store8 offset=2 - local.get $1 - end + i32.const 3 + i32.const 0 + i32.const 3 + i32.const 0 + call $~lib/rt/__allocArray + local.set $1 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $0 + global.get $std/array-literal/i + i32.store8 + local.get $0 + global.get $std/array-literal/i + i32.const 1 + i32.add + global.set $std/array-literal/i + global.get $std/array-literal/i + i32.store8 offset=1 + local.get $0 + global.get $std/array-literal/i + i32.const 1 + i32.add + global.set $std/array-literal/i + global.get $std/array-literal/i + i32.store8 offset=2 + local.get $1 call $~lib/rt/pure/__retain global.set $std/array-literal/dynamicArrayI8 global.get $std/array-literal/dynamicArrayI8 @@ -3569,39 +3298,33 @@ end i32.const 0 global.set $std/array-literal/i - block (result i32) - i32.const 3 - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__allocArray - local.set $0 - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - global.get $std/array-literal/i - i32.store - local.get $1 - block (result i32) - global.get $std/array-literal/i - i32.const 1 - i32.add - global.set $std/array-literal/i - global.get $std/array-literal/i - end - i32.store offset=4 - local.get $1 - block (result i32) - global.get $std/array-literal/i - i32.const 1 - i32.add - global.set $std/array-literal/i - global.get $std/array-literal/i - end - i32.store offset=8 - local.get $0 - end + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__allocArray + local.set $0 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + global.get $std/array-literal/i + i32.store + local.get $1 + global.get $std/array-literal/i + i32.const 1 + i32.add + global.set $std/array-literal/i + global.get $std/array-literal/i + i32.store offset=4 + local.get $1 + global.get $std/array-literal/i + i32.const 1 + i32.add + global.set $std/array-literal/i + global.get $std/array-literal/i + i32.store offset=8 + local.get $0 call $~lib/rt/pure/__retain global.set $std/array-literal/dynamicArrayI32 global.get $std/array-literal/dynamicArrayI32 @@ -3659,36 +3382,34 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 3 - i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__allocArray - local.set $1 - local.get $1 - i32.load offset=4 - local.set $0 - local.get $0 - i32.const 0 - call $std/array-literal/Ref#constructor - local.tee $2 - call $~lib/rt/pure/__retain - i32.store - local.get $0 - i32.const 0 - call $std/array-literal/Ref#constructor - local.tee $3 - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $0 - i32.const 0 - call $std/array-literal/Ref#constructor - local.tee $4 - call $~lib/rt/pure/__retain - i32.store offset=8 - local.get $1 - end + i32.const 3 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__allocArray + local.set $1 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $0 + i32.const 0 + call $std/array-literal/Ref#constructor + local.tee $2 + call $~lib/rt/pure/__retain + i32.store + local.get $0 + i32.const 0 + call $std/array-literal/Ref#constructor + local.tee $3 + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $0 + i32.const 0 + call $std/array-literal/Ref#constructor + local.tee $4 + call $~lib/rt/pure/__retain + i32.store offset=8 + local.get $1 call $~lib/rt/pure/__retain global.set $std/array-literal/dynamicArrayRef global.get $std/array-literal/dynamicArrayRef @@ -3704,36 +3425,34 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 3 - i32.const 2 - i32.const 8 - i32.const 0 - call $~lib/rt/__allocArray - local.set $0 - local.get $0 - i32.load offset=4 - local.set $1 - local.get $1 - i32.const 0 - call $std/array-literal/RefWithCtor#constructor - local.tee $5 - call $~lib/rt/pure/__retain - i32.store - local.get $1 - i32.const 0 - call $std/array-literal/RefWithCtor#constructor - local.tee $6 - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $1 - i32.const 0 - call $std/array-literal/RefWithCtor#constructor - local.tee $7 - call $~lib/rt/pure/__retain - i32.store offset=8 - local.get $0 - end + i32.const 3 + i32.const 2 + i32.const 8 + i32.const 0 + call $~lib/rt/__allocArray + local.set $0 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + i32.const 0 + call $std/array-literal/RefWithCtor#constructor + local.tee $5 + call $~lib/rt/pure/__retain + i32.store + local.get $1 + i32.const 0 + call $std/array-literal/RefWithCtor#constructor + local.tee $6 + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $1 + i32.const 0 + call $std/array-literal/RefWithCtor#constructor + local.tee $7 + call $~lib/rt/pure/__retain + i32.store offset=8 + local.get $0 call $~lib/rt/pure/__retain global.set $std/array-literal/dynamicArrayRefWithCtor global.get $std/array-literal/dynamicArrayRefWithCtor @@ -3944,103 +3663,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 456 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 456 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 456 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 456 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -4089,7 +3788,6 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end @@ -4129,7 +3827,6 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end @@ -4137,134 +3834,54 @@ (func $~lib/rt/__visit_members (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$10 - block $switch$1$case$8 - block $switch$1$case$6 - block $switch$1$case$5 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$2 $switch$1$case$8 $switch$1$case$2 $switch$1$case$10 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable - end - block - br $block$4$break - unreachable - end - unreachable - end - block - block + block $switch$1$default + block $switch$1$case$10 + block $switch$1$case$8 + block $switch$1$case$6 + block $switch$1$case$5 + block $switch$1$case$4 + block $switch$1$case$2 local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$2 $switch$1$case$8 $switch$1$case$2 $switch$1$case$10 $switch$1$default end - unreachable - unreachable + return end - unreachable + br $block$4$break end - block - block - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - end - block - block - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - end - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 + local.get $0 local.get $1 - call $~lib/rt/pure/__visit + call $~lib/array/Array#__visit_impl + br $block$4$break end - return - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + br $block$4$break end unreachable - unreachable end - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end + return ) (func $null (; 49 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index f41d46be..d118d414 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -25,7 +25,6 @@ (type $FUNCSIG$viji (func (param i32 i64 i32))) (type $FUNCSIG$iiij (func (param i32 i32 i64) (result i32))) (type $FUNCSIG$i (func (result i32))) - (type $FUNCSIG$ji (func (param i32) (result i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onalloc" (func $~lib/rt/rtrace/onalloc (param i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -1908,7 +1907,6 @@ i32.and local.tee $2 i32.sub - local.set $3 local.get $0 local.get $2 i32.add @@ -1920,7 +1918,6 @@ i32.mul local.tee $0 i32.store - local.get $3 i32.const -4 i32.and local.tee $3 @@ -2379,12 +2376,10 @@ i32.const 16 i32.sub i32.load offset=12 - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 i32.const 2 i32.shr_s ) @@ -2643,11 +2638,9 @@ i32.shl i32.add i32.load - local.set $2 local.get $0 local.get $1 i32.store offset=12 - local.get $2 ) (func $~lib/array/Array#concat (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2864,7 +2857,6 @@ i32.load offset=4 local.tee $2 i32.load - local.set $3 local.get $2 local.get $2 i32.const 4 @@ -2885,7 +2877,6 @@ local.get $0 local.get $1 i32.store offset=12 - local.get $3 ) (func $~lib/array/Array#reverse (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) @@ -3487,7 +3478,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -4230,7 +4220,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -4741,7 +4730,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -5275,7 +5263,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -5980,12 +5967,10 @@ i32.const 0 call $~lib/array/Array#__get i32.sub - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 ) (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 129 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -6072,7 +6057,6 @@ local.get $6 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -6124,12 +6108,10 @@ end local.get $0 call $~lib/rt/pure/__retain - local.set $0 local.get $2 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release - local.get $0 return end local.get $3 @@ -6333,12 +6315,10 @@ local.get $1 i32.load i32.sub - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 ) (func $~lib/array/Array<~lib/string/String | null>#__get (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -6569,12 +6549,10 @@ i32.lt_s select call $~lib/util/string/compareImpl - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 return end local.get $0 @@ -6625,12 +6603,10 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 return end local.get $0 @@ -6651,12 +6627,10 @@ local.get $1 call $~lib/string/String.__eq i32.eqz - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 ) (func $std/array/isArraysEqual<~lib/string/String | null> (; 146 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -6822,10 +6796,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 return end local.get $2 @@ -6860,12 +6832,10 @@ select local.get $1 call $~lib/string/String#concat - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 ) (func $std/array/createRandomString (; 151 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) @@ -7058,10 +7028,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -7076,10 +7044,8 @@ i32.load8_u select call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4512 @@ -7187,12 +7153,10 @@ local.get $2 local.get $0 call $~lib/string/String#substring - local.set $0 i32.const 4512 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4512 @@ -7334,20 +7298,18 @@ return end local.get $0 - block (result i32) - local.get $2 + local.get $2 + i32.const 0 + i32.lt_s + local.tee $1 + if i32.const 0 - i32.lt_s - local.tee $1 - if - i32.const 0 - local.get $2 - i32.sub - local.set $2 - end local.get $2 + i32.sub + local.set $2 end local.get $2 + local.get $2 call $~lib/util/number/decimalCount32 local.get $1 i32.add @@ -7381,10 +7343,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -7398,12 +7358,10 @@ call $~lib/util/number/itoa32 local.tee $0 call $~lib/rt/pure/__retain - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 return end local.get $1 @@ -7483,12 +7441,10 @@ local.get $2 local.get $0 call $~lib/string/String#substring - local.set $0 local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $0 return end local.get $1 @@ -7502,10 +7458,8 @@ local.get $0 local.get $1 call $~lib/array/Array#join_int - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 ) (func $~lib/util/number/utoa32 (; 161 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) @@ -7575,10 +7529,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -7592,12 +7544,10 @@ call $~lib/util/number/utoa32 local.tee $0 call $~lib/rt/pure/__retain - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 return end local.get $1 @@ -7677,12 +7627,10 @@ local.get $2 local.get $0 call $~lib/string/String#substring - local.set $0 local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $0 return end local.get $1 @@ -7696,10 +7644,8 @@ local.get $0 local.get $1 call $~lib/array/Array#join_int - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 ) (func $~lib/number/isFinite (; 165 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 @@ -7708,53 +7654,7 @@ f64.const 0 f64.eq ) - (func $~lib/array/Array#__get (; 166 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) - local.get $0 - i32.const 5760 - i32.load - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - end - i32.const 5756 - i32.load - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $~lib/array/Array#__get (; 167 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.const 5984 - i32.load - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - end - i32.const 5980 - i32.load - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - ) - (func $~lib/util/number/genDigits (; 168 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 166 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i32) (local $9 i64) @@ -8153,7 +8053,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 169 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 167 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -8308,23 +8208,21 @@ i32.const 4 i32.add local.tee $0 - block (result i32) - local.get $3 - i32.const 1 - i32.sub - local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + local.tee $1 + if i32.const 0 - i32.lt_s - local.tee $1 - if - i32.const 0 - local.get $2 - i32.sub - local.set $2 - end local.get $2 + i32.sub + local.set $2 end local.get $2 + local.get $2 call $~lib/util/number/decimalCount32 i32.const 1 i32.add @@ -8366,23 +8264,21 @@ i32.const 4 i32.add local.tee $2 - block (result i32) - local.get $3 - i32.const 1 - i32.sub - local.tee $0 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end local.get $0 + i32.sub + local.set $0 end local.get $0 + local.get $0 call $~lib/util/number/decimalCount32 i32.const 1 i32.add @@ -8404,37 +8300,30 @@ end end ) - (func $~lib/util/number/dtoa_core (; 170 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 168 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) - (local $5 i32) + (local $5 i64) (local $6 i64) - (local $7 i64) + (local $7 i32) (local $8 i64) - (local $9 i32) + (local $9 i64) (local $10 i32) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - (local $16 i64) - (local $17 i64) - (local $18 i64) + (local $11 i32) local.get $1 f64.const 0 f64.lt - local.tee $9 - if (result f64) + local.tee $10 + if local.get $0 i32.const 45 i32.store16 local.get $1 f64.neg - else - local.get $1 + local.set $1 end + local.get $1 i64.reinterpret_f64 local.tee $2 i64.const 9218868437227405312 @@ -8442,57 +8331,57 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.set $5 + local.tee $11 + i32.const 0 + i32.ne + local.set $7 local.get $2 i64.const 4503599627370495 i64.and - local.get $5 - i32.const 0 - i32.ne - local.tee $10 + local.get $7 i64.extend_i32_u i64.const 52 i64.shl i64.add - local.tee $2 + local.tee $5 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $6 + local.tee $2 i64.clz i32.wrap_i64 local.set $3 - local.get $6 + local.get $2 local.get $3 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $5 + local.get $11 i32.const 1 - local.get $10 + local.get $7 select i32.const 1075 i32.sub - local.tee $5 + local.tee $7 i32.const 1 i32.sub local.get $3 i32.sub local.set $3 - local.get $2 - local.get $2 + local.get $5 + local.get $5 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $10 + local.tee $11 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $5 - local.get $10 + local.get $7 + local.get $11 i32.sub local.get $3 i32.sub @@ -8527,69 +8416,50 @@ i32.shl i32.sub global.set $~lib/util/number/_K + i32.const 5756 + i32.load local.get $3 - call $~lib/array/Array#__get + i32.const 3 + i32.shl + i32.add + i64.load global.set $~lib/util/number/_frc_pow + i32.const 5980 + i32.load local.get $3 - call $~lib/array/Array#__get + i32.const 1 + i32.shl + i32.add + i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $2 - local.get $2 - i64.clz - i32.wrap_i64 - local.tee $3 - i64.extend_i32_s - i64.shl + global.get $~lib/util/number/_frc_pow local.tee $6 i64.const 4294967295 i64.and - local.tee $11 - global.get $~lib/util/number/_frc_pow - local.tee $2 - i64.const 4294967295 - i64.and - local.tee $13 - i64.mul - local.set $14 + local.set $2 global.get $~lib/util/number/_frc_plus - local.tee $7 - i64.const 4294967295 - i64.and - local.tee $4 - local.get $2 - i64.const 4294967295 - i64.and local.tee $8 - i64.mul - local.set $12 - global.get $~lib/util/number/_frc_minus - local.tee $15 i64.const 4294967295 i64.and - local.tee $16 - local.get $2 - i64.const 4294967295 - i64.and - local.tee $17 - i64.mul - local.set $18 - local.get $4 - local.get $2 - i64.const 32 - i64.shr_u local.tee $4 - i64.mul - local.get $7 + local.get $6 i64.const 32 i64.shr_u - local.tee $7 - local.get $8 + local.tee $6 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + local.tee $8 + local.get $2 + i64.mul + local.get $2 + local.get $4 i64.mul - local.get $12 i64.const 32 i64.shr_u i64.add - local.tee $8 + local.tee $4 i64.const 4294967295 i64.and i64.add @@ -8597,34 +8467,37 @@ i64.add i64.const 32 i64.shr_u - local.get $4 - local.get $7 - i64.mul + local.get $6 local.get $8 + i64.mul + local.get $4 i64.const 32 i64.shr_u i64.add i64.add i64.const 1 i64.sub - local.tee $7 - local.get $2 + local.tee $8 + local.get $6 + global.get $~lib/util/number/_frc_minus + local.tee $4 + i64.const 4294967295 + i64.and + local.tee $9 + i64.mul + local.get $4 i64.const 32 i64.shr_u local.tee $4 - local.get $16 + local.get $2 i64.mul - local.get $15 - i64.const 32 - i64.shr_u - local.tee $8 - local.get $17 + local.get $2 + local.get $9 i64.mul - local.get $18 i64.const 32 i64.shr_u i64.add - local.tee $12 + local.tee $9 i64.const 4294967295 i64.and i64.add @@ -8633,9 +8506,9 @@ i64.const 32 i64.shr_u local.get $4 - local.get $8 + local.get $6 i64.mul - local.get $12 + local.get $9 i64.const 32 i64.shr_u i64.add @@ -8644,29 +8517,38 @@ i64.add i64.sub local.set $4 - local.get $9 + local.get $10 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 - local.get $11 - i64.mul local.get $6 + local.get $5 + local.get $5 + i64.clz + i32.wrap_i64 + local.tee $0 + i64.extend_i32_s + i64.shl + local.tee $5 + i64.const 4294967295 + i64.and + local.tee $9 + i64.mul + local.get $5 i64.const 32 i64.shr_u - local.tee $6 - local.get $13 + local.tee $5 + local.get $2 + i64.mul + local.get $2 + local.get $9 i64.mul - local.get $14 i64.const 32 i64.shr_u i64.add - local.tee $11 + local.tee $2 i64.const 4294967295 i64.and i64.add @@ -8674,39 +8556,39 @@ i64.add i64.const 32 i64.shr_u - local.get $2 + local.get $5 local.get $6 i64.mul - local.get $11 + local.get $2 i64.const 32 i64.shr_u i64.add i64.add global.get $~lib/util/number/_exp_pow - local.tee $0 - local.get $5 - local.get $3 + local.tee $3 + local.get $7 + local.get $0 i32.sub i32.add i32.const -64 i32.sub - local.get $7 + local.get $8 global.get $~lib/util/number/_exp - local.get $0 + local.get $3 i32.add i32.const -64 i32.sub local.get $4 - local.get $9 + local.get $10 call $~lib/util/number/genDigits - local.get $9 + local.get $10 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $10 i32.add ) - (func $~lib/util/number/dtoa (; 171 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 169 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -8754,12 +8636,10 @@ local.get $1 local.get $2 call $~lib/string/String#substring - local.set $2 local.get $1 call $~lib/rt/tlsf/__free - local.get $2 ) - (func $~lib/util/number/dtoa_stream (; 172 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 170 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -8827,7 +8707,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 173 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_flt (; 171 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8847,10 +8727,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4896 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -8864,12 +8742,10 @@ call $~lib/util/number/dtoa local.tee $0 call $~lib/rt/pure/__retain - local.set $1 local.get $0 call $~lib/rt/pure/__release i32.const 4896 call $~lib/rt/pure/__release - local.get $1 return end i32.const 4896 @@ -8949,19 +8825,17 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 i32.const 4896 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4896 call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#join_str (; 174 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join_str (; 172 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8982,10 +8856,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -8997,10 +8869,8 @@ local.get $7 i32.load call $~lib/rt/pure/__retain - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 return end local.get $1 @@ -9168,25 +9038,23 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#join (; 175 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join (; 173 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 call $~lib/rt/pure/__retain drop local.get $0 local.get $1 call $~lib/array/Array<~lib/string/String>#join_str - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 ) - (func $std/array/Ref#constructor (; 176 ;) (type $FUNCSIG$i) (result i32) + (func $std/array/Ref#constructor (; 174 ;) (type $FUNCSIG$i) (result i32) i32.const 0 i32.const 18 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#join_ref (; 177 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_ref (; 175 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9208,10 +9076,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -9222,10 +9088,8 @@ if i32.const 6248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4512 @@ -9308,43 +9172,39 @@ br $loop|0 end end - block (result i32) - local.get $3 - i32.const 2 - i32.shl - local.get $7 - i32.add - i32.load - if - local.get $1 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 6248 - i32.const 30 - call $~lib/memory/memory.copy - local.get $1 - i32.const 15 - i32.add - local.set $1 - end - local.get $8 + local.get $3 + i32.const 2 + i32.shl + local.get $7 + i32.add + i32.load + if local.get $1 - i32.gt_s + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.const 6248 + i32.const 30 + call $~lib/memory/memory.copy + local.get $1 + i32.const 15 + i32.add + local.set $1 end + local.get $8 + local.get $1 + i32.gt_s if local.get $2 local.get $1 call $~lib/string/String#substring - local.set $4 i32.const 4512 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $4 return end i32.const 4512 @@ -9353,12 +9213,12 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array#toString (; 178 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 176 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa_stream (; 179 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 177 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -9413,7 +9273,7 @@ end local.get $2 ) - (func $~lib/array/Array#join_int (; 180 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 178 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9433,10 +9293,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -9450,12 +9308,10 @@ call $~lib/util/number/itoa32 local.tee $0 call $~lib/rt/pure/__retain - local.set $1 local.get $0 call $~lib/rt/pure/__release i32.const 4512 call $~lib/rt/pure/__release - local.get $1 return end i32.const 4512 @@ -9531,19 +9387,17 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 i32.const 4512 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4512 call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/itoa_stream (; 181 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 179 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -9573,7 +9427,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/array/Array#join_int (; 182 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 180 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9593,10 +9447,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -9610,12 +9462,10 @@ call $~lib/util/number/utoa32 local.tee $0 call $~lib/rt/pure/__retain - local.set $1 local.get $0 call $~lib/rt/pure/__release i32.const 4512 call $~lib/rt/pure/__release - local.get $1 return end i32.const 4512 @@ -9695,19 +9545,17 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 i32.const 4512 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4512 call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/decimalCount64 (; 183 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 181 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) i32.const 11 i32.const 12 local.get $0 @@ -9755,7 +9603,7 @@ i64.lt_u select ) - (func $~lib/util/number/utoa_simple (; 184 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 182 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -9785,7 +9633,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/utoa64 (; 185 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 183 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9829,7 +9677,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 186 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 184 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) local.get $1 i32.const 1 @@ -9869,7 +9717,7 @@ end local.get $1 ) - (func $~lib/array/Array#join_int (; 187 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 185 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9889,10 +9737,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -9906,12 +9752,10 @@ call $~lib/util/number/utoa64 local.tee $0 call $~lib/rt/pure/__retain - local.set $1 local.get $0 call $~lib/rt/pure/__release i32.const 4512 call $~lib/rt/pure/__release - local.get $1 return end i32.const 4512 @@ -9991,19 +9835,17 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 i32.const 4512 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4512 call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/itoa64 (; 188 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 186 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10015,21 +9857,19 @@ call $~lib/rt/pure/__retain return end - block (result i32) - local.get $0 + local.get $0 + i64.const 0 + i64.lt_s + local.tee $1 + if i64.const 0 - i64.lt_s - local.tee $1 - if - i64.const 0 - local.get $0 - i64.sub - local.set $0 - end local.get $0 - i64.const 4294967295 - i64.le_u + i64.sub + local.set $0 end + local.get $0 + i64.const 4294967295 + i64.le_u if local.get $0 i32.wrap_i64 @@ -10070,7 +9910,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 189 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 187 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -10088,21 +9928,19 @@ i32.const 1 return end - block (result i32) - local.get $2 + local.get $2 + i64.const 0 + i64.lt_s + local.tee $1 + if i64.const 0 - i64.lt_s - local.tee $1 - if - i64.const 0 - local.get $2 - i64.sub - local.set $2 - end local.get $2 - i64.const 4294967295 - i64.le_u + i64.sub + local.set $2 end + local.get $2 + i64.const 4294967295 + i64.le_u if local.get $2 i32.wrap_i64 @@ -10133,7 +9971,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 190 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 188 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10153,10 +9991,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -10170,12 +10006,10 @@ call $~lib/util/number/itoa64 local.tee $0 call $~lib/rt/pure/__retain - local.set $1 local.get $0 call $~lib/rt/pure/__release i32.const 4512 call $~lib/rt/pure/__release - local.get $1 return end i32.const 4512 @@ -10255,24 +10089,22 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 i32.const 4512 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4512 call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 191 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 189 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/string/String>#join ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 192 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 190 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10294,10 +10126,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4248 @@ -10333,14 +10163,12 @@ i32.const 4248 call $~lib/rt/pure/__retain end - local.set $1 i32.const 4512 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $1 return end loop $loop|0 @@ -10465,7 +10293,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/number/itoa_stream (; 193 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 191 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 1 i32.shl @@ -10495,7 +10323,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/array/Array#join_int (; 194 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join_int (; 192 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10515,10 +10343,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -10532,12 +10358,10 @@ call $~lib/util/number/utoa32 local.tee $0 call $~lib/rt/pure/__retain - local.set $1 local.get $0 call $~lib/rt/pure/__release i32.const 4512 call $~lib/rt/pure/__release - local.get $1 return end i32.const 4512 @@ -10613,30 +10437,26 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 i32.const 4512 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4512 call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#join (; 195 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#join (; 193 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 4512 call $~lib/rt/pure/__retain drop local.get $0 call $~lib/array/Array#join_int - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 196 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 194 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10658,10 +10478,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4248 @@ -10696,14 +10514,12 @@ i32.const 4248 call $~lib/rt/pure/__retain end - local.set $1 i32.const 4512 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $1 return end loop $loop|0 @@ -10826,7 +10642,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 197 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 195 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10848,10 +10664,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4248 @@ -10887,14 +10701,12 @@ i32.const 4248 call $~lib/rt/pure/__retain end - local.set $1 i32.const 4512 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $1 return end loop $loop|0 @@ -11019,18 +10831,16 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 198 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 196 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 4512 call $~lib/rt/pure/__retain drop local.get $0 call $~lib/array/Array<~lib/array/Array>#join_arr - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 199 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 197 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11052,10 +10862,8 @@ if i32.const 4248 call $~lib/rt/pure/__retain - local.set $0 i32.const 4512 call $~lib/rt/pure/__release - local.get $0 return end i32.const 4248 @@ -11090,14 +10898,12 @@ i32.const 4248 call $~lib/rt/pure/__retain end - local.set $1 i32.const 4512 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $1 return end loop $loop|0 @@ -11220,7 +11026,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $start:std/array (; 200 ;) (type $FUNCSIG$v) + (func $start:std/array (; 198 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -11303,7 +11109,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $2 local.get $1 call $~lib/array/Array.isArray if @@ -11343,7 +11148,6 @@ call $~lib/builtins/abort unreachable end - local.get $2 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release @@ -16560,7 +16364,6 @@ call $~lib/rt/__allocArray local.tee $26 i32.load offset=4 - local.set $8 i32.const 1 i32.const 2 i32.const 24 @@ -16577,7 +16380,6 @@ local.tee $27 call $~lib/rt/pure/__retain i32.store - local.get $8 local.get $1 call $~lib/rt/pure/__retain i32.store @@ -16679,7 +16481,7 @@ local.get $8 call $~lib/rt/pure/__release ) - (func $start (; 201 ;) (type $FUNCSIG$v) + (func $start (; 199 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -16689,7 +16491,7 @@ end call $start:std/array ) - (func $~lib/rt/pure/markGray (; 202 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 200 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -16713,7 +16515,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 203 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 201 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -16726,7 +16528,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 204 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 202 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -16760,7 +16562,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 205 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 203 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -16793,7 +16595,7 @@ call $~lib/rt/tlsf/freeBlock end ) - (func $~lib/rt/pure/__visit (; 206 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 204 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 7460 i32.lt_u @@ -16903,7 +16705,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 207 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 205 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -16936,7 +16738,7 @@ end end ) - (func $~lib/rt/__visit_members (; 208 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 206 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$27 @@ -17007,7 +16809,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 209 ;) (type $FUNCSIG$v) + (func $null (; 207 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 6665b70e..8ed257a6 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -361,85 +361,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -495,20 +487,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -546,20 +536,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -570,14 +558,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -730,24 +716,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -761,27 +745,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -790,36 +772,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -857,12 +835,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -959,15 +935,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -1027,15 +1001,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -1045,21 +1017,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -1069,33 +1039,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -1104,7 +1071,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -1133,19 +1099,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 176 - i32.const 128 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 128 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1242,18 +1200,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1286,18 +1242,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1309,29 +1263,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1349,7 +1280,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1470,34 +1420,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1693,19 +1639,11 @@ i32.load i32.gt_u if - block - block - i32.const 280 - i32.const 336 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 336 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1733,22 +1671,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1756,7 +1690,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1814,7 +1747,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1881,22 +1813,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1928,226 +1856,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -2155,15 +1935,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -2171,15 +1951,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -2187,10 +1967,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2206,65 +1986,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2272,15 +2057,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2288,15 +2073,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2304,10 +2089,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2323,307 +2108,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2631,148 +2456,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2780,76 +2573,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2857,40 +2634,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2898,22 +2667,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2985,26 +2750,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -3032,7 +2792,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -3042,22 +2801,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -3065,7 +2820,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -3104,7 +2858,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -3128,7 +2881,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -3150,7 +2902,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3397,19 +3148,11 @@ i32.shr_u i32.gt_u if - block - block - i32.const 24 - i32.const 72 - i32.const 14 - i32.const 56 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 72 + i32.const 14 + i32.const 56 + call $~lib/builtins/abort unreachable end local.get $1 @@ -3419,44 +3162,40 @@ i32.const 0 call $~lib/rt/tlsf/__alloc local.set $3 - block (result i32) - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 local.tee $4 - block (result i32) - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $4 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - drop - local.get $4 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release end + local.get $5 i32.store local.get $0 local.get $3 @@ -3913,7 +3652,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -4017,19 +3755,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 488 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4056,35 +3786,27 @@ call $~lib/array/Array#get:length i32.ne if - block - i32.const 0 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 local.get $1 i32.eq if - block - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end end block $break|0 @@ -4104,25 +3826,20 @@ call $~lib/array/Array#__get i32.ne if - block - i32.const 0 - local.set $4 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + local.set $4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $3 i32.const 1 i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -4214,7 +3931,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -4242,19 +3958,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 488 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4281,35 +3989,27 @@ call $~lib/array/Array#get:length i32.ne if - block - i32.const 0 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 local.get $1 i32.eq if - block - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end end block $break|0 @@ -4329,25 +4029,20 @@ call $~lib/array/Array#__get i32.ne if - block - i32.const 0 - local.set $4 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + local.set $4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $3 i32.const 1 i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -4432,20 +4127,18 @@ local.get $1 return end - block $~lib/rt/tlsf/GETRIGHT|inlined.4 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $6 local.get $6 i32.load @@ -4583,19 +4276,11 @@ i32.shr_u i32.gt_u if - block - block - i32.const 24 - i32.const 488 - i32.const 14 - i32.const 47 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 488 + i32.const 14 + i32.const 47 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4678,19 +4363,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 488 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4707,19 +4384,11 @@ i32.const 1 i32.lt_s if - block - block - i32.const 872 - i32.const 488 - i32.const 287 - i32.const 20 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 872 + i32.const 488 + i32.const 287 + i32.const 20 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4768,21 +4437,13 @@ i32.const 268435452 i32.gt_u if - block - local.get $1 - call $~lib/rt/pure/__release - block - i32.const 24 - i32.const 488 - i32.const 217 - i32.const 59 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + local.get $1 + call $~lib/rt/pure/__release + i32.const 24 + i32.const 488 + i32.const 217 + i32.const 59 + call $~lib/builtins/abort unreachable end local.get $4 @@ -4968,35 +4629,27 @@ call $~lib/array/Array#get:length i32.ne if - block - i32.const 0 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 local.get $1 i32.eq if - block - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end end block $break|0 @@ -5016,25 +4669,20 @@ call $~lib/array/Array#__get i32.ne if - block - i32.const 0 - local.set $4 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + local.set $4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $3 i32.const 1 i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -5091,19 +4739,11 @@ i32.const 1 i32.lt_s if - block - block - i32.const 872 - i32.const 488 - i32.const 348 - i32.const 20 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 872 + i32.const 488 + i32.const 348 + i32.const 20 + call $~lib/builtins/abort unreachable end local.get $0 @@ -5184,7 +4824,6 @@ i32.sub local.set $3 br $continue|0 - unreachable end unreachable end @@ -5257,7 +4896,6 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end @@ -5434,13 +5072,11 @@ (local $4 i32) (local $5 i32) block $break|0 - block - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - end + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -5455,21 +5091,19 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$iiii) if local.get $2 return @@ -5479,7 +5113,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -5576,13 +5209,11 @@ (local $4 i32) (local $5 i32) block $break|0 - block - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - end + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -5597,21 +5228,19 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$iiii) i32.const 0 i32.ne i32.eqz @@ -5624,7 +5253,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -5708,13 +5336,11 @@ (local $4 i32) (local $5 i32) block $break|0 - block - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - end + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -5729,21 +5355,19 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $2 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $2 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$iiii) if i32.const 1 return @@ -5753,7 +5377,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -5835,13 +5458,11 @@ (local $4 i32) (local $5 i32) block $break|0 - block - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $3 - end + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -5874,7 +5495,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -5945,7 +5565,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -5969,7 +5588,6 @@ i32.add local.set $3 br $loop|1 - unreachable end unreachable end @@ -5990,7 +5608,6 @@ i32.add local.set $3 br $loop|2 - unreachable end unreachable end @@ -6014,7 +5631,6 @@ i32.add local.set $3 br $loop|3 - unreachable end unreachable end @@ -6089,21 +5705,19 @@ i32.lt_s i32.eqz br_if $break|0 - block (result f32) - i32.const 3 - global.set $~lib/argc - local.get $0 - i32.load offset=4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$fiii) - end + i32.const 3 + global.set $~lib/argc + local.get $0 + i32.load offset=4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$fiii) local.set $8 local.get $4 local.get $5 @@ -6117,7 +5731,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -6144,19 +5757,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 488 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -6219,21 +5824,19 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $0 - i32.load offset=4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $0 + i32.load offset=4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$iiii) local.set $6 local.get $4 local.get $5 @@ -6247,7 +5850,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -6313,13 +5915,11 @@ call $~lib/rt/pure/__retain local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $0 - i32.load offset=12 - local.set $4 - end + i32.const 0 + local.set $3 + local.get $0 + i32.load offset=12 + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -6342,15 +5942,13 @@ i32.add i32.load local.set $5 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $3 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $3 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$iiii) if local.get $2 local.get $5 @@ -6362,7 +5960,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -6448,13 +6045,11 @@ local.get $2 local.set $3 block $break|0 - block - i32.const 0 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $5 - end + i32.const 0 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 loop $loop|0 local.get $4 local.get $5 @@ -6469,29 +6064,26 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $0 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $4 i32.const 1 i32.add local.set $4 br $loop|0 - unreachable end unreachable end @@ -6537,13 +6129,11 @@ local.get $2 local.set $3 block $break|0 - block - i32.const 0 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $5 - end + i32.const 0 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $5 loop $loop|0 local.get $4 local.get $5 @@ -6558,29 +6148,26 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $0 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $4 i32.const 1 i32.add local.set $4 br $loop|0 - unreachable end unreachable end @@ -6680,29 +6267,26 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $0 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $4 i32.const 1 i32.sub local.set $4 br $loop|0 - unreachable end unreachable end @@ -6756,29 +6340,26 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $0 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $4 - local.get $0 - local.get $1 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $0 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $4 + local.get $0 + local.get $1 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $4 i32.const 1 i32.sub local.set $4 br $loop|0 - unreachable end unreachable end @@ -6981,26 +6562,22 @@ i32.add f32.load local.set $6 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $6 - local.get $2 - call_indirect (type $FUNCSIG$iff) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $FUNCSIG$iff) i32.const 0 i32.lt_s if local.get $0 - block (result i32) - local.get $5 - local.tee $7 - i32.const 1 - i32.sub - local.set $5 - local.get $7 - end + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 i32.const 1 i32.add i32.const 2 @@ -7009,14 +6586,9 @@ local.get $6 f32.store else - block - br $break|1 - unreachable - end - unreachable + br $break|1 end br $continue|1 - unreachable end unreachable end @@ -7034,7 +6606,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -7106,7 +6677,6 @@ i32.shr_s local.set $6 br $continue|1 - unreachable end unreachable end @@ -7128,14 +6698,12 @@ i32.add f32.load local.set $9 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $8 - local.get $9 - local.get $2 - call_indirect (type $FUNCSIG$iff) - end + i32.const 2 + global.set $~lib/argc + local.get $8 + local.get $9 + local.get $2 + call_indirect (type $FUNCSIG$iff) i32.const 0 i32.lt_s if @@ -7181,7 +6749,6 @@ i32.sub local.set $5 br $loop|0 - unreachable end unreachable end @@ -7244,7 +6811,6 @@ local.get $5 local.set $6 br $continue|3 - unreachable end unreachable end @@ -7265,14 +6831,12 @@ i32.add f32.load local.set $8 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $9 - local.get $8 - local.get $2 - call_indirect (type $FUNCSIG$iff) - end + i32.const 2 + global.set $~lib/argc + local.get $9 + local.get $8 + local.get $2 + call_indirect (type $FUNCSIG$iff) i32.const 0 i32.lt_s if @@ -7314,7 +6878,6 @@ i32.shr_s local.set $6 br $continue|4 - unreachable end unreachable end @@ -7323,7 +6886,6 @@ i32.sub local.set $7 br $loop|2 - unreachable end unreachable end @@ -7372,14 +6934,12 @@ local.get $3 f32.load local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $5 - local.get $1 - call_indirect (type $FUNCSIG$iff) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $5 + local.get $1 + call_indirect (type $FUNCSIG$iff) i32.const 0 i32.lt_s if @@ -7394,27 +6954,25 @@ call $~lib/rt/pure/__retain return end - block $~lib/util/sort/SORT|inlined.0 - local.get $3 - local.set $8 - local.get $2 - local.set $7 - local.get $1 - local.set $6 + local.get $3 + local.set $8 + local.get $2 + local.set $7 + local.get $1 + local.set $6 + local.get $7 + i32.const 256 + i32.lt_s + if + local.get $8 local.get $7 - i32.const 256 - i32.lt_s - if - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/sort/insertionSort - else - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/sort/weakHeapSort - end + local.get $6 + call $~lib/util/sort/insertionSort + else + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/sort/weakHeapSort end local.get $0 call $~lib/rt/pure/__retain @@ -7496,35 +7054,27 @@ call $~lib/array/Array#get:length i32.ne if - block - i32.const 0 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 local.get $1 i32.eq if - block - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end end block $break|0 @@ -7547,11 +7097,7 @@ call $~lib/number/isNaN i32.eq if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end local.get $0 local.get $3 @@ -7561,18 +7107,14 @@ call $~lib/array/Array#__get f32.ne if - block - i32.const 0 - local.set $4 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + local.set $4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end end local.get $3 @@ -7580,7 +7122,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -7632,26 +7173,22 @@ i32.add f64.load local.set $6 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $6 - local.get $2 - call_indirect (type $FUNCSIG$idd) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $FUNCSIG$idd) i32.const 0 i32.lt_s if local.get $0 - block (result i32) - local.get $5 - local.tee $7 - i32.const 1 - i32.sub - local.set $5 - local.get $7 - end + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 i32.const 1 i32.add i32.const 3 @@ -7660,14 +7197,9 @@ local.get $6 f64.store else - block - br $break|1 - unreachable - end - unreachable + br $break|1 end br $continue|1 - unreachable end unreachable end @@ -7685,7 +7217,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -7757,7 +7288,6 @@ i32.shr_s local.set $6 br $continue|1 - unreachable end unreachable end @@ -7779,14 +7309,12 @@ i32.add f64.load local.set $9 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $8 - local.get $9 - local.get $2 - call_indirect (type $FUNCSIG$idd) - end + i32.const 2 + global.set $~lib/argc + local.get $8 + local.get $9 + local.get $2 + call_indirect (type $FUNCSIG$idd) i32.const 0 i32.lt_s if @@ -7832,7 +7360,6 @@ i32.sub local.set $5 br $loop|0 - unreachable end unreachable end @@ -7895,7 +7422,6 @@ local.get $5 local.set $6 br $continue|3 - unreachable end unreachable end @@ -7916,14 +7442,12 @@ i32.add f64.load local.set $8 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $9 - local.get $8 - local.get $2 - call_indirect (type $FUNCSIG$idd) - end + i32.const 2 + global.set $~lib/argc + local.get $9 + local.get $8 + local.get $2 + call_indirect (type $FUNCSIG$idd) i32.const 0 i32.lt_s if @@ -7965,7 +7489,6 @@ i32.shr_s local.set $6 br $continue|4 - unreachable end unreachable end @@ -7974,7 +7497,6 @@ i32.sub local.set $7 br $loop|2 - unreachable end unreachable end @@ -8023,14 +7545,12 @@ local.get $3 f64.load local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $5 - local.get $1 - call_indirect (type $FUNCSIG$idd) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $5 + local.get $1 + call_indirect (type $FUNCSIG$idd) i32.const 0 i32.lt_s if @@ -8045,27 +7565,25 @@ call $~lib/rt/pure/__retain return end - block $~lib/util/sort/SORT|inlined.0 - local.get $3 - local.set $8 - local.get $2 - local.set $7 - local.get $1 - local.set $6 + local.get $3 + local.set $8 + local.get $2 + local.set $7 + local.get $1 + local.set $6 + local.get $7 + i32.const 256 + i32.lt_s + if + local.get $8 local.get $7 - i32.const 256 - i32.lt_s - if - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/sort/insertionSort - else - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/sort/weakHeapSort - end + local.get $6 + call $~lib/util/sort/insertionSort + else + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/sort/weakHeapSort end local.get $0 call $~lib/rt/pure/__retain @@ -8143,19 +7661,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 488 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -8187,35 +7697,27 @@ call $~lib/array/Array#get:length i32.ne if - block - i32.const 0 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 local.get $1 i32.eq if - block - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end end block $break|0 @@ -8238,11 +7740,7 @@ call $~lib/number/isNaN i32.eq if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end local.get $0 local.get $3 @@ -8252,18 +7750,14 @@ call $~lib/array/Array#__get f64.ne if - block - i32.const 0 - local.set $4 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + local.set $4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end end local.get $3 @@ -8271,7 +7765,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -8323,26 +7816,22 @@ i32.add i32.load local.set $6 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $6 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if local.get $0 - block (result i32) - local.get $5 - local.tee $7 - i32.const 1 - i32.sub - local.set $5 - local.get $7 - end + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 i32.const 1 i32.add i32.const 2 @@ -8351,14 +7840,9 @@ local.get $6 i32.store else - block - br $break|1 - unreachable - end - unreachable + br $break|1 end br $continue|1 - unreachable end unreachable end @@ -8376,7 +7860,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -8448,7 +7931,6 @@ i32.shr_s local.set $6 br $continue|1 - unreachable end unreachable end @@ -8470,14 +7952,12 @@ i32.add i32.load local.set $9 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $8 - local.get $9 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $8 + local.get $9 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -8523,7 +8003,6 @@ i32.sub local.set $5 br $loop|0 - unreachable end unreachable end @@ -8586,7 +8065,6 @@ local.get $6 local.set $7 br $continue|3 - unreachable end unreachable end @@ -8607,14 +8085,12 @@ i32.add i32.load local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $8 - local.get $5 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $8 + local.get $5 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -8656,7 +8132,6 @@ i32.shr_s local.set $7 br $continue|4 - unreachable end unreachable end @@ -8665,7 +8140,6 @@ i32.sub local.set $9 br $loop|2 - unreachable end unreachable end @@ -8712,14 +8186,12 @@ local.get $3 i32.load local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -8734,27 +8206,25 @@ call $~lib/rt/pure/__retain return end - block $~lib/util/sort/SORT|inlined.0 - local.get $3 - local.set $6 - local.get $2 - local.set $5 - local.get $1 - local.set $4 + local.get $3 + local.set $6 + local.get $2 + local.set $5 + local.get $1 + local.set $4 + local.get $5 + i32.const 256 + i32.lt_s + if + local.get $6 local.get $5 - i32.const 256 - i32.lt_s - if - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/insertionSort - else - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/weakHeapSort - end + local.get $4 + call $~lib/util/sort/insertionSort + else + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/weakHeapSort end local.get $0 call $~lib/rt/pure/__retain @@ -8823,26 +8293,22 @@ i32.add i32.load local.set $6 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $6 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if local.get $0 - block (result i32) - local.get $5 - local.tee $7 - i32.const 1 - i32.sub - local.set $5 - local.get $7 - end + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 i32.const 1 i32.add i32.const 2 @@ -8851,14 +8317,9 @@ local.get $6 i32.store else - block - br $break|1 - unreachable - end - unreachable + br $break|1 end br $continue|1 - unreachable end unreachable end @@ -8876,7 +8337,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -8948,7 +8408,6 @@ i32.shr_s local.set $6 br $continue|1 - unreachable end unreachable end @@ -8970,14 +8429,12 @@ i32.add i32.load local.set $9 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $8 - local.get $9 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $8 + local.get $9 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -9023,7 +8480,6 @@ i32.sub local.set $5 br $loop|0 - unreachable end unreachable end @@ -9086,7 +8542,6 @@ local.get $6 local.set $7 br $continue|3 - unreachable end unreachable end @@ -9107,14 +8562,12 @@ i32.add i32.load local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $8 - local.get $5 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $8 + local.get $5 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -9156,7 +8609,6 @@ i32.shr_s local.set $7 br $continue|4 - unreachable end unreachable end @@ -9165,7 +8617,6 @@ i32.sub local.set $9 br $loop|2 - unreachable end unreachable end @@ -9212,14 +8663,12 @@ local.get $3 i32.load local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -9234,27 +8683,25 @@ call $~lib/rt/pure/__retain return end - block $~lib/util/sort/SORT|inlined.0 - local.get $3 - local.set $6 - local.get $2 - local.set $5 - local.get $1 - local.set $4 + local.get $3 + local.set $6 + local.get $2 + local.set $5 + local.get $1 + local.set $4 + local.get $5 + i32.const 256 + i32.lt_s + if + local.get $6 local.get $5 - i32.const 256 - i32.lt_s - if - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/insertionSort - else - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/weakHeapSort - end + local.get $4 + call $~lib/util/sort/insertionSort + else + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/sort/weakHeapSort end local.get $0 call $~lib/rt/pure/__retain @@ -9293,19 +8740,11 @@ i32.const 268435452 i32.gt_u if - block - block - i32.const 24 - i32.const 488 - i32.const 45 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 488 + i32.const 45 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -9354,7 +8793,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -9367,19 +8805,11 @@ global.get $~lib/math/random_seeded i32.eqz if - block - block - i32.const 3936 - i32.const 3160 - i32.const 1029 - i32.const 24 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 3936 + i32.const 3160 + i32.const 1029 + i32.const 24 + call $~lib/builtins/abort unreachable end global.get $~lib/math/random_state0_64 @@ -9453,7 +8883,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -9472,53 +8901,44 @@ call $~lib/rt/pure/__retain drop block $break|0 - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/array/Array#get:length - local.set $3 - end + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array#get:length + local.set $3 loop $loop|0 local.get $2 local.get $3 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $0 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array#__get - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.gt_s if - block - i32.const 0 - local.set $4 - local.get $0 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + local.set $4 + local.get $0 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $2 i32.const 1 i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -9592,19 +9012,11 @@ i32.const 268435452 i32.gt_u if - block - block - i32.const 24 - i32.const 488 - i32.const 45 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 488 + i32.const 45 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -9667,21 +9079,13 @@ local.get $3 i32.gt_u if - block - local.get $2 - call $~lib/rt/pure/__release - block - i32.const 4040 - i32.const 488 - i32.const 121 - i32.const 38 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + local.get $2 + call $~lib/rt/pure/__release + i32.const 4040 + i32.const 488 + i32.const 121 + i32.const 38 + call $~lib/builtins/abort unreachable end local.get $0 @@ -9745,7 +9149,6 @@ local.get $3 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -9815,26 +9218,22 @@ i32.load call $~lib/rt/pure/__retain local.set $6 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $6 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if local.get $0 - block (result i32) - local.get $5 - local.tee $7 - i32.const 1 - i32.sub - local.set $5 - local.get $7 - end + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 i32.const 1 i32.add i32.const 2 @@ -9843,18 +9242,13 @@ local.get $6 i32.store else - block - local.get $6 - call $~lib/rt/pure/__release - br $break|1 - unreachable - end - unreachable + local.get $6 + call $~lib/rt/pure/__release + br $break|1 end local.get $6 call $~lib/rt/pure/__release br $continue|1 - unreachable end unreachable end @@ -9874,7 +9268,6 @@ local.get $4 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -9911,14 +9304,12 @@ i32.load call $~lib/rt/pure/__retain local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -9939,18 +9330,16 @@ local.get $6 return end - block $~lib/util/sort/SORT<~lib/array/Array>|inlined.0 - local.get $3 - local.set $5 - local.get $2 - local.set $4 - local.get $1 - local.set $6 - local.get $5 - local.get $4 - local.get $6 - call $~lib/util/sort/insertionSort<~lib/array/Array> - end + local.get $3 + local.set $5 + local.get $2 + local.set $4 + local.get $1 + local.set $6 + local.get $5 + local.get $4 + local.get $6 + call $~lib/util/sort/insertionSort<~lib/array/Array> local.get $0 call $~lib/rt/pure/__retain ) @@ -9974,19 +9363,11 @@ i32.load offset=12 i32.ge_u if - block - block - i32.const 4040 - i32.const 488 - i32.const 106 - i32.const 45 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 4040 + i32.const 488 + i32.const 106 + i32.const 45 + call $~lib/builtins/abort unreachable end local.get $1 @@ -9996,19 +9377,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 488 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -10025,52 +9398,44 @@ call $~lib/rt/pure/__retain drop block $break|0 - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/array/Array<~lib/array/Array>#get:length - local.set $3 - end + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/array/Array>#get:length + local.set $3 loop $loop|0 local.get $2 local.get $3 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $0 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array<~lib/array/Array>#__get - local.tee $4 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/array/Array>#__get - local.tee $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/array/Array>#__get + local.tee $4 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#__get + local.tee $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.gt_s if - block - i32.const 0 - local.set $6 - local.get $0 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - return - unreachable - end - unreachable + i32.const 0 + local.set $6 + local.get $0 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + return end local.get $2 i32.const 1 @@ -10081,7 +9446,6 @@ local.get $5 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -10122,19 +9486,11 @@ i32.const 268435452 i32.gt_u if - block - block - i32.const 24 - i32.const 488 - i32.const 45 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 488 + i32.const 45 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -10212,21 +9568,13 @@ local.get $3 i32.gt_u if - block - local.get $2 - call $~lib/rt/pure/__release - block - i32.const 4040 - i32.const 488 - i32.const 121 - i32.const 38 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + local.get $2 + call $~lib/rt/pure/__release + i32.const 4040 + i32.const 488 + i32.const 121 + i32.const 38 + call $~lib/builtins/abort unreachable end local.get $0 @@ -10286,7 +9634,6 @@ local.get $3 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -10354,26 +9701,22 @@ i32.load call $~lib/rt/pure/__retain local.set $6 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $6 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if local.get $0 - block (result i32) - local.get $5 - local.tee $7 - i32.const 1 - i32.sub - local.set $5 - local.get $7 - end + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 i32.const 1 i32.add i32.const 2 @@ -10382,18 +9725,13 @@ local.get $6 i32.store else - block - local.get $6 - call $~lib/rt/pure/__release - br $break|1 - unreachable - end - unreachable + local.get $6 + call $~lib/rt/pure/__release + br $break|1 end local.get $6 call $~lib/rt/pure/__release br $continue|1 - unreachable end unreachable end @@ -10413,7 +9751,6 @@ local.get $4 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -10450,14 +9787,12 @@ i32.load call $~lib/rt/pure/__retain local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -10478,18 +9813,16 @@ local.get $6 return end - block $~lib/util/sort/SORT>|inlined.0 - local.get $3 - local.set $5 - local.get $2 - local.set $4 - local.get $1 - local.set $6 - local.get $5 - local.get $4 - local.get $6 - call $~lib/util/sort/insertionSort> - end + local.get $3 + local.set $5 + local.get $2 + local.set $4 + local.get $1 + local.set $6 + local.get $5 + local.get $4 + local.get $6 + call $~lib/util/sort/insertionSort> local.get $0 call $~lib/rt/pure/__retain ) @@ -10513,19 +9846,11 @@ i32.load offset=12 i32.ge_u if - block - block - i32.const 4040 - i32.const 488 - i32.const 106 - i32.const 45 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 4040 + i32.const 488 + i32.const 106 + i32.const 45 + call $~lib/builtins/abort unreachable end local.get $1 @@ -10535,19 +9860,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 488 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -10564,52 +9881,44 @@ call $~lib/rt/pure/__retain drop block $break|0 - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/array/Array>#get:length - local.set $3 - end + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array>#get:length + local.set $3 loop $loop|0 local.get $2 local.get $3 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $0 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array>#__get - local.tee $4 - local.get $0 - local.get $2 - call $~lib/array/Array>#__get - local.tee $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array>#__get + local.tee $4 + local.get $0 + local.get $2 + call $~lib/array/Array>#__get + local.tee $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.gt_s if - block - i32.const 0 - local.set $6 - local.get $0 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - return - unreachable - end - unreachable + i32.const 0 + local.set $6 + local.get $0 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + return end local.get $2 i32.const 1 @@ -10620,7 +9929,6 @@ local.get $5 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -10697,26 +10005,22 @@ i32.load call $~lib/rt/pure/__retain local.set $6 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $6 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if local.get $0 - block (result i32) - local.get $5 - local.tee $7 - i32.const 1 - i32.sub - local.set $5 - local.get $7 - end + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 i32.const 1 i32.add i32.const 2 @@ -10725,18 +10029,13 @@ local.get $6 i32.store else - block - local.get $6 - call $~lib/rt/pure/__release - br $break|1 - unreachable - end - unreachable + local.get $6 + call $~lib/rt/pure/__release + br $break|1 end local.get $6 call $~lib/rt/pure/__release br $continue|1 - unreachable end unreachable end @@ -10756,7 +10055,6 @@ local.get $4 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -10793,14 +10091,12 @@ i32.load call $~lib/rt/pure/__retain local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -10821,18 +10117,16 @@ local.get $6 return end - block $~lib/util/sort/SORT<~lib/string/String | null>|inlined.0 - local.get $3 - local.set $5 - local.get $2 - local.set $4 - local.get $1 - local.set $6 - local.get $5 - local.get $4 - local.get $6 - call $~lib/util/sort/insertionSort<~lib/string/String | null> - end + local.get $3 + local.set $5 + local.get $2 + local.set $4 + local.get $1 + local.set $6 + local.get $5 + local.get $4 + local.get $6 + call $~lib/util/sort/insertionSort<~lib/string/String | null> local.get $0 call $~lib/rt/pure/__retain ) @@ -10858,19 +10152,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 488 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -10887,52 +10173,44 @@ call $~lib/rt/pure/__retain drop block $break|0 - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/array/Array<~lib/string/String | null>#get:length - local.set $3 - end + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/string/String | null>#get:length + local.set $3 loop $loop|0 local.get $2 local.get $3 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $0 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $4 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String | null>#__get - local.tee $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/string/String | null>#__get + local.tee $4 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String | null>#__get + local.tee $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.gt_s if - block - i32.const 0 - local.set $6 - local.get $0 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - return - unreachable - end - unreachable + i32.const 0 + local.set $6 + local.get $0 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + return end local.get $2 i32.const 1 @@ -10943,7 +10221,6 @@ local.get $5 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -11040,7 +10317,6 @@ i32.add local.set $7 br $continue|0 - unreachable end unreachable end @@ -11081,18 +10357,14 @@ i32.eq end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 call $~lib/string/String#get:length @@ -11109,50 +10381,38 @@ i32.const 0 end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $3 i32.eqz if - block - i32.const -1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const -1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $4 i32.eqz if - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -11208,18 +10468,14 @@ local.get $1 i32.eq if - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -11232,18 +10488,14 @@ i32.eq end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 call $~lib/string/String#get:length @@ -11253,18 +10505,14 @@ call $~lib/string/String#get:length i32.ne if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -11321,35 +10569,27 @@ call $~lib/array/Array<~lib/string/String | null>#get:length i32.ne if - block - i32.const 0 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 local.get $1 i32.eq if - block - i32.const 1 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 1 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end end block $break|0 @@ -11371,22 +10611,18 @@ local.tee $5 call $~lib/string/String.__ne if - block - i32.const 0 - local.set $6 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - return - unreachable - end - unreachable + i32.const 0 + local.set $6 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + return end local.get $3 i32.const 1 @@ -11397,7 +10633,6 @@ local.get $5 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -11415,19 +10650,11 @@ i32.const 268435452 i32.gt_u if - block - block - i32.const 24 - i32.const 488 - i32.const 45 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 488 + i32.const 45 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -11500,21 +10727,19 @@ i32.const 0 i32.eq if - block (result i32) - i32.const 4408 - local.tee $2 - local.get $1 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - drop - local.get $3 - call $~lib/rt/pure/__release - end + i32.const 4408 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release end + local.get $2 local.set $1 end local.get $0 @@ -11535,17 +10760,13 @@ i32.const 0 i32.eq if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $6 i32.const 1 @@ -11611,37 +10832,33 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - local.get $1 - global.get $std/array/charset - block $~lib/math/NativeMath.floor|inlined.0 (result f64) - call $~lib/math/NativeMath.random - global.get $std/array/charset - call $~lib/string/String#get:length - f64.convert_i32_s - f64.mul - local.set $3 - local.get $3 - f64.floor - end - i32.trunc_f64_s - call $~lib/string/String#charAt - local.tee $4 - call $~lib/string/String.__concat - local.tee $5 - local.tee $6 - local.get $1 - local.tee $7 - i32.ne - if - local.get $6 - call $~lib/rt/pure/__retain - drop - local.get $7 - call $~lib/rt/pure/__release - end + local.get $1 + global.get $std/array/charset + call $~lib/math/NativeMath.random + global.get $std/array/charset + call $~lib/string/String#get:length + f64.convert_i32_s + f64.mul + local.set $3 + local.get $3 + f64.floor + i32.trunc_f64_s + call $~lib/string/String#charAt + local.tee $4 + call $~lib/string/String.__concat + local.tee $5 + local.tee $6 + local.get $1 + local.tee $7 + i32.ne + if local.get $6 + call $~lib/rt/pure/__retain + drop + local.get $7 + call $~lib/rt/pure/__release end + local.get $6 local.set $1 local.get $2 i32.const 1 @@ -11652,7 +10869,6 @@ local.get $5 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -11700,21 +10916,13 @@ local.get $3 i32.gt_u if - block - local.get $2 - call $~lib/rt/pure/__release - block - i32.const 4040 - i32.const 488 - i32.const 121 - i32.const 38 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + local.get $2 + call $~lib/rt/pure/__release + i32.const 4040 + i32.const 488 + i32.const 121 + i32.const 38 + call $~lib/builtins/abort unreachable end local.get $0 @@ -11772,7 +10980,6 @@ local.get $3 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -11820,26 +11027,22 @@ i32.load call $~lib/rt/pure/__retain local.set $6 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $6 - local.get $2 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if local.get $0 - block (result i32) - local.get $5 - local.tee $7 - i32.const 1 - i32.sub - local.set $5 - local.get $7 - end + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 i32.const 1 i32.add i32.const 2 @@ -11848,18 +11051,13 @@ local.get $6 i32.store else - block - local.get $6 - call $~lib/rt/pure/__release - br $break|1 - unreachable - end - unreachable + local.get $6 + call $~lib/rt/pure/__release + br $break|1 end local.get $6 call $~lib/rt/pure/__release br $continue|1 - unreachable end unreachable end @@ -11879,7 +11077,6 @@ local.get $4 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -11916,14 +11113,12 @@ i32.load call $~lib/rt/pure/__retain local.set $5 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.lt_s if @@ -11944,18 +11139,16 @@ local.get $6 return end - block $~lib/util/sort/SORT<~lib/string/String>|inlined.0 - local.get $3 - local.set $5 - local.get $2 - local.set $4 - local.get $1 - local.set $6 - local.get $5 - local.get $4 - local.get $6 - call $~lib/util/sort/insertionSort<~lib/string/String> - end + local.get $3 + local.set $5 + local.get $2 + local.set $4 + local.get $1 + local.set $6 + local.get $5 + local.get $4 + local.get $6 + call $~lib/util/sort/insertionSort<~lib/string/String> local.get $0 call $~lib/rt/pure/__retain ) @@ -11979,19 +11172,11 @@ i32.load offset=12 i32.ge_u if - block - block - i32.const 4040 - i32.const 488 - i32.const 106 - i32.const 45 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 4040 + i32.const 488 + i32.const 106 + i32.const 45 + call $~lib/builtins/abort unreachable end local.get $1 @@ -12001,19 +11186,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 488 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -12030,52 +11207,44 @@ call $~lib/rt/pure/__retain drop block $break|0 - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/array/Array<~lib/string/String>#get:length - local.set $3 - end + i32.const 1 + local.set $2 + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.set $3 loop $loop|0 local.get $2 local.get $3 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $0 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array<~lib/string/String>#__get - local.tee $4 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $5 - local.get $1 - call_indirect (type $FUNCSIG$iii) - end + i32.const 2 + global.set $~lib/argc + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array<~lib/string/String>#__get + local.tee $4 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $5 + local.get $1 + call_indirect (type $FUNCSIG$iii) i32.const 0 i32.gt_s if - block - i32.const 0 - local.set $6 - local.get $0 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - return - unreachable - end - unreachable + i32.const 0 + local.set $6 + local.get $0 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + return end local.get $2 i32.const 1 @@ -12086,7 +11255,6 @@ local.get $5 call $~lib/rt/pure/__release br $loop|0 - unreachable end unreachable end @@ -12150,18 +11318,14 @@ i32.eq end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 call $~lib/string/String#get:length @@ -12178,50 +11342,38 @@ i32.const 0 end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $3 i32.eqz if - block - i32.const -1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const -1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $4 i32.eqz if - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -12405,17 +11557,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -12423,21 +11571,17 @@ local.get $2 i32.eqz if - block - i32.const 4456 - i32.const 4480 - local.get $4 - i32.load8_u - select - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4456 + i32.const 4480 + local.get $4 + i32.load8_u + select + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $1 call $~lib/string/String#get:length @@ -12521,7 +11665,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -12558,21 +11701,17 @@ local.get $9 i32.gt_s if - block - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $8 local.set $3 @@ -12628,7 +11767,6 @@ return end unreachable - unreachable else local.get $0 i32.const 10000000 @@ -12658,10 +11796,8 @@ return end unreachable - unreachable end unreachable - unreachable ) (func $~lib/util/number/utoa32_lut (; 229 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -12729,7 +11865,6 @@ i64.or i64.store br $continue|0 - unreachable end unreachable end @@ -12842,18 +11977,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $3 - block $~lib/util/number/utoa32_core|inlined.0 - local.get $3 - local.set $6 - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_lut - end + local.get $3 + local.set $6 + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_lut local.get $1 if local.get $3 @@ -12907,18 +12040,16 @@ local.get $4 i32.add local.set $3 - block $~lib/util/number/utoa32_core|inlined.1 - local.get $0 - local.set $7 - local.get $2 - local.set $6 - local.get $3 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - end + local.get $0 + local.set $7 + local.get $2 + local.set $6 + local.get $3 + local.set $5 + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut local.get $4 if local.get $0 @@ -12949,17 +12080,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -12967,22 +12094,18 @@ local.get $2 i32.eqz if - block - local.get $4 - i32.load - call $~lib/util/number/itoa - local.tee $3 - call $~lib/rt/pure/__retain - local.set $5 - local.get $3 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - return - unreachable - end - unreachable + local.get $4 + i32.load + call $~lib/util/number/itoa + local.tee $3 + call $~lib/rt/pure/__retain + local.set $5 + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return end local.get $1 call $~lib/string/String#get:length @@ -13049,7 +12172,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -13071,21 +12193,17 @@ local.get $9 i32.gt_s if - block - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $8 local.set $3 @@ -13129,18 +12247,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $2 - block $~lib/util/number/utoa32_core|inlined.2 - local.get $2 - local.set $5 - local.get $0 - local.set $4 - local.get $1 - local.set $3 - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/number/utoa32_lut - end + local.get $2 + local.set $5 + local.get $0 + local.set $4 + local.get $1 + local.set $3 + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/number/utoa32_lut local.get $2 call $~lib/rt/pure/__retain ) @@ -13174,18 +12290,16 @@ local.get $2 call $~lib/util/number/decimalCount32 local.set $3 - block $~lib/util/number/utoa32_core|inlined.3 - local.get $0 - local.set $6 - local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_lut - end + local.get $0 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_lut local.get $3 ) (func $~lib/array/Array#join_int (; 238 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) @@ -13210,17 +12324,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -13228,22 +12338,18 @@ local.get $2 i32.eqz if - block - local.get $4 - i32.load - call $~lib/util/number/itoa - local.tee $3 - call $~lib/rt/pure/__retain - local.set $5 - local.get $3 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - return - unreachable - end - unreachable + local.get $4 + i32.load + call $~lib/util/number/itoa + local.tee $3 + call $~lib/rt/pure/__retain + local.set $5 + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return end local.get $1 call $~lib/string/String#get:length @@ -13310,7 +12416,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -13332,21 +12437,17 @@ local.get $9 i32.gt_s if - block - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $8 local.set $3 @@ -13384,34 +12485,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__get (; 242 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - ) - (func $~lib/array/Array#__unchecked_get (; 243 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 242 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -13420,34 +12494,7 @@ i32.add i32.load16_s ) - (func $~lib/array/Array#__get (; 244 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - block - block - i32.const 280 - i32.const 488 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - ) - (func $~lib/util/number/genDigits (; 245 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 243 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -13568,163 +12615,117 @@ br_if $case9|1 br $case10|1 end - block - local.get $12 - i32.const 1000000000 - i32.div_u - local.set $17 - local.get $12 - i32.const 1000000000 - i32.rem_u - local.set $12 - br $break|1 - unreachable - end - unreachable - end - block local.get $12 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $17 local.get $12 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $17 local.get $12 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $17 local.get $12 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $17 local.get $12 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 10000 + i32.const 100000 i32.div_u local.set $17 local.get $12 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 1000 + i32.const 10000 i32.div_u local.set $17 local.get $12 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 100 + i32.const 1000 i32.div_u local.set $17 local.get $12 - i32.const 100 + i32.const 1000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 10 + i32.const 100 i32.div_u local.set $17 local.get $12 - i32.const 10 + i32.const 100 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 + i32.const 10 + i32.div_u local.set $17 - i32.const 0 + local.get $12 + i32.const 10 + i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block - i32.const 0 + local.get $12 local.set $17 + i32.const 0 + local.set $12 br $break|1 - unreachable end - unreachable + i32.const 0 + local.set $17 + br $break|1 end local.get $17 local.get $15 i32.or if local.get $0 - block (result i32) - local.get $15 - local.tee $18 - i32.const 1 - i32.add - local.set $15 - local.get $18 - end + local.get $15 + local.tee $18 + i32.const 1 + i32.add + local.set $15 + local.get $18 i32.const 1 i32.shl i32.add @@ -13755,98 +12756,94 @@ local.get $14 i32.add global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $0 - local.set $24 - local.get $15 - local.set $18 - local.get $5 - local.set $23 - local.get $19 - local.set $22 - local.get $16 - local.get $14 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.set $21 - local.get $10 - local.set $20 - local.get $24 - local.get $18 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $25 - local.get $25 - i32.load16_u - local.set $26 - block $break|2 - loop $continue|2 + local.get $0 + local.set $24 + local.get $15 + local.set $18 + local.get $5 + local.set $23 + local.get $19 + local.set $22 + local.get $16 + local.get $14 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $21 + local.get $10 + local.set $20 + local.get $24 + local.get $18 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $25 + local.get $25 + i32.load16_u + local.set $26 + block $break|2 + loop $continue|2 + local.get $22 + local.get $20 + i64.lt_u + if (result i32) + local.get $23 local.get $22 + i64.sub + local.get $21 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $22 + local.get $21 + i64.add local.get $20 i64.lt_u if (result i32) - local.get $23 + i32.const 1 + else + local.get $20 local.get $22 i64.sub - local.get $21 - i64.ge_u - else - i32.const 0 - end - if (result i32) local.get $22 local.get $21 i64.add local.get $20 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $20 - local.get $22 - i64.sub - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.sub - i64.gt_u - end - else - i32.const 0 + i64.sub + i64.gt_u end - i32.eqz - br_if $break|2 - local.get $26 - i32.const 1 - i32.sub - local.set $26 - local.get $22 - local.get $21 - i64.add - local.set $22 - br $continue|2 - unreachable + else + i32.const 0 end - unreachable + i32.eqz + br_if $break|2 + local.get $26 + i32.const 1 + i32.sub + local.set $26 + local.get $22 + local.get $21 + i64.add + local.set $22 + br $continue|2 end - local.get $25 - local.get $26 - i32.store16 + unreachable end + local.get $25 + local.get $26 + i32.store16 local.get $15 return end br $continue|0 - unreachable end unreachable end @@ -13872,14 +12869,12 @@ i64.ne if local.get $0 - block (result i32) - local.get $15 - local.tee $17 - i32.const 1 - i32.add - local.set $15 - local.get $17 - end + local.get $15 + local.tee $17 + i32.const 1 + i32.add + local.set $15 + local.get $17 i32.const 1 i32.shl i32.add @@ -13918,95 +12913,90 @@ i64.load32_u i64.mul local.set $10 - block $~lib/util/number/grisuRound|inlined.1 - local.get $0 - local.set $24 - local.get $15 - local.set $18 - local.get $5 - local.set $23 - local.get $13 - local.set $22 - local.get $8 - local.set $21 - local.get $10 - local.set $20 - local.get $24 - local.get $18 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $17 - local.get $17 - i32.load16_u - local.set $26 - block $break|4 - loop $continue|4 + local.get $0 + local.set $24 + local.get $15 + local.set $18 + local.get $5 + local.set $23 + local.get $13 + local.set $22 + local.get $8 + local.set $21 + local.get $10 + local.set $20 + local.get $24 + local.get $18 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $17 + local.get $17 + i32.load16_u + local.set $26 + block $break|4 + loop $continue|4 + local.get $22 + local.get $20 + i64.lt_u + if (result i32) + local.get $23 local.get $22 + i64.sub + local.get $21 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $22 + local.get $21 + i64.add local.get $20 i64.lt_u if (result i32) - local.get $23 + i32.const 1 + else + local.get $20 local.get $22 i64.sub - local.get $21 - i64.ge_u - else - i32.const 0 - end - if (result i32) local.get $22 local.get $21 i64.add local.get $20 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $20 - local.get $22 - i64.sub - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.sub - i64.gt_u - end - else - i32.const 0 + i64.sub + i64.gt_u end - i32.eqz - br_if $break|4 - local.get $26 - i32.const 1 - i32.sub - local.set $26 - local.get $22 - local.get $21 - i64.add - local.set $22 - br $continue|4 - unreachable + else + i32.const 0 end - unreachable + i32.eqz + br_if $break|4 + local.get $26 + i32.const 1 + i32.sub + local.set $26 + local.get $22 + local.get $21 + i64.add + local.set $22 + br $continue|4 end - local.get $17 - local.get $26 - i32.store16 + unreachable end + local.get $17 + local.get $26 + i32.store16 local.get $15 return end br $continue|3 - unreachable end unreachable - local.get $15 ) - (func $~lib/util/number/prettify (; 246 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 244 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14071,7 +13061,6 @@ i32.add local.set $4 br $loop|0 - unreachable end unreachable end @@ -14183,7 +13172,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -14199,51 +13187,47 @@ local.get $0 i32.const 101 i32.store16 offset=2 - block $~lib/util/number/genExponent|inlined.0 (result i32) - local.get $0 - i32.const 4 - i32.add - local.set $4 - local.get $3 - i32.const 1 + local.get $0 + i32.const 4 + i32.add + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $5 + local.get $5 + i32.const 0 + i32.lt_s + local.set $6 + local.get $6 + if + i32.const 0 + local.get $5 i32.sub local.set $5 - local.get $5 - i32.const 0 - i32.lt_s - local.set $6 - local.get $6 - if - i32.const 0 - local.get $5 - i32.sub - local.set $5 - end - local.get $5 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $7 - block $~lib/util/number/utoa32_core|inlined.4 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/number/utoa32_lut - end - local.get $4 - i32.const 45 - i32.const 43 - local.get $6 - select - i32.store16 - local.get $7 end + local.get $5 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $4 + local.set $10 + local.get $5 + local.set $9 + local.get $7 + local.set $8 + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $6 + select + i32.store16 + local.get $7 local.set $1 local.get $1 i32.const 2 @@ -14273,53 +13257,49 @@ i32.const 101 i32.store16 offset=2 local.get $1 - block $~lib/util/number/genExponent|inlined.1 (result i32) - local.get $0 - local.get $7 - i32.add - i32.const 4 - i32.add - local.set $9 - local.get $3 - i32.const 1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $6 + local.get $6 + if + i32.const 0 + local.get $8 i32.sub local.set $8 - local.get $8 - i32.const 0 - i32.lt_s - local.set $6 - local.get $6 - if - i32.const 0 - local.get $8 - i32.sub - local.set $8 - end - local.get $8 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $4 - block $~lib/util/number/utoa32_core|inlined.5 - local.get $9 - local.set $11 - local.get $8 - local.set $5 - local.get $4 - local.set $10 - local.get $11 - local.get $5 - local.get $10 - call $~lib/util/number/utoa32_lut - end - local.get $9 - i32.const 45 - i32.const 43 - local.get $6 - select - i32.store16 - local.get $4 end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $4 + local.get $9 + local.set $11 + local.get $8 + local.set $5 + local.get $4 + local.set $10 + local.get $11 + local.get $5 + local.get $10 + call $~lib/util/number/utoa32_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $6 + select + i32.store16 + local.get $4 i32.add local.set $1 local.get $1 @@ -14334,9 +13314,8 @@ unreachable end unreachable - unreachable ) - (func $~lib/util/number/dtoa_core (; 247 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 245 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14377,387 +13356,371 @@ i32.const 45 i32.store16 end - block $~lib/util/number/grisu2|inlined.0 (result i32) - local.get $1 - local.set $5 - local.get $0 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i64.reinterpret_f64 - local.set $6 - local.get $6 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $7 - local.get $6 - i64.const 4503599627370495 - i64.and - local.set $8 - local.get $7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $8 - i64.add - local.set $9 - local.get $7 - i32.const 1 - local.get $7 - i32.const 0 - i32.ne - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $7 - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $9 - local.set $11 - local.get $7 - local.set $10 - local.get $11 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $12 - local.get $10 - i32.const 1 - i32.sub - local.set $13 - local.get $12 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $12 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $12 - local.get $13 - local.get $14 - i32.sub - local.set $13 - i32.const 1 - local.get $11 - i64.const 4503599627370496 - i64.eq - i32.add - local.set $15 - local.get $12 - global.set $~lib/util/number/_frc_plus - local.get $11 - local.get $15 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $10 - local.get $15 - i32.sub - local.get $13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $13 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $10 - i32.const -61 - local.get $10 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $16 - local.get $16 - i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 - f64.convert_i32_s - local.get $16 - f64.ne - i32.add - local.set $15 - local.get $15 - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $14 - i32.const 348 - local.get $14 - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 6200 - local.get $14 - call $~lib/array/Array#__get - global.set $~lib/util/number/_frc_pow - i32.const 6424 - local.get $14 - call $~lib/array/Array#__get - global.set $~lib/util/number/_exp_pow - end - local.get $9 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $9 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $9 - local.get $7 - local.get $14 - i32.sub - local.set $7 - global.get $~lib/util/number/_frc_pow - local.set $12 - global.get $~lib/util/number/_exp_pow - local.set $15 - block $~lib/util/number/umul64f|inlined.0 (result i64) - local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $24 - local.get $24 - i64.const 2147483647 - i64.add - local.set $24 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $24 - i64.const 32 - i64.shr_u - local.set $24 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $24 - i64.add - end - local.set $24 - block $~lib/util/number/umul64e|inlined.0 (result i32) - local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 - i32.add - i32.const 64 - i32.add - end - local.set $10 - block $~lib/util/number/umul64f|inlined.1 (result i64) - global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $23 - local.get $11 - i64.const 4294967295 - i64.and - local.set $22 - local.get $17 - i64.const 32 - i64.shr_u - local.set $21 - local.get $11 - i64.const 32 - i64.shr_u - local.set $20 - local.get $23 - local.get $22 - i64.mul - local.set $19 - local.get $21 - local.get $22 - i64.mul - local.get $19 - i64.const 32 - i64.shr_u - i64.add - local.set $18 - local.get $23 - local.get $20 - i64.mul - local.get $18 - i64.const 4294967295 - i64.and - i64.add - local.set $25 - local.get $25 - i64.const 2147483647 - i64.add - local.set $25 - local.get $18 - i64.const 32 - i64.shr_u - local.set $18 - local.get $25 - i64.const 32 - i64.shr_u - local.set $25 - local.get $21 - local.get $20 - i64.mul - local.get $18 - i64.add - local.get $25 - i64.add - end - i64.const 1 - i64.sub - local.set $25 - block $~lib/util/number/umul64e|inlined.1 (result i32) - global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 - i32.add - i32.const 64 - i32.add - end - local.set $26 - block $~lib/util/number/umul64f|inlined.2 (result i64) - global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $27 - local.get $27 - i64.const 2147483647 - i64.add - local.set $27 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $27 - i64.const 32 - i64.shr_u - local.set $27 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $27 - i64.add - end - i64.const 1 - i64.add - local.set $27 - local.get $25 - local.get $27 - i64.sub - local.set $23 - local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 - local.get $3 - call $~lib/util/number/genDigits - end + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and + local.set $8 + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $8 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + i32.const 0 + i32.ne + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq + i32.add + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 + i32.sub + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 6200 + local.get $14 + call $~lib/array/Array#__unchecked_get + global.set $~lib/util/number/_frc_pow + i32.const 6424 + local.get $14 + call $~lib/array/Array#__unchecked_get + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp + local.set $26 + local.get $15 + local.set $13 + local.get $26 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 + local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 + call $~lib/util/number/genDigits local.set $28 local.get $0 local.get $2 @@ -14774,7 +13737,7 @@ local.get $2 i32.add ) - (func $~lib/util/number/dtoa (; 248 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 246 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14833,7 +13796,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $~lib/util/number/dtoa_stream (; 249 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 247 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -14898,13 +13861,12 @@ return end unreachable - unreachable end local.get $0 local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array#join_flt (; 250 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_flt (; 248 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14926,17 +13888,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -15022,7 +13980,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -15044,21 +14001,17 @@ local.get $9 i32.gt_s if - block - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $8 local.set $3 @@ -15066,7 +14019,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 251 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 249 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15080,7 +14033,7 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/string/String>#join_str (; 252 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join_str (; 250 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15104,17 +14057,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -15122,18 +14071,14 @@ local.get $2 i32.eqz if - block - local.get $4 - i32.load - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $4 + i32.load + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $1 call $~lib/string/String#get:length @@ -15143,40 +14088,36 @@ i32.const 0 local.set $7 block $break|0 - block - i32.const 0 - local.set $3 - local.get $2 - i32.const 1 - i32.add - local.set $8 - end + i32.const 0 + local.set $3 + local.get $2 + i32.const 1 + i32.add + local.set $8 loop $loop|0 local.get $3 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - local.get $4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $7 - local.tee $10 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $7 + local.tee $10 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $9 local.set $7 local.get $7 i32.const 0 @@ -15193,7 +14134,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -15219,26 +14159,24 @@ i32.lt_s i32.eqz br_if $break|1 - block (result i32) - local.get $4 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $10 - local.get $7 - local.tee $3 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $3 - call $~lib/rt/pure/__release - end + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release end + local.get $10 local.set $7 local.get $7 i32.const 0 @@ -15284,30 +14222,27 @@ i32.add local.set $8 br $loop|1 - unreachable end unreachable end - block (result i32) - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $7 - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $7 + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 local.set $7 local.get $7 i32.const 0 @@ -15333,7 +14268,7 @@ call $~lib/rt/pure/__release local.get $9 ) - (func $~lib/array/Array<~lib/string/String>#join (; 253 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#join (; 251 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15347,7 +14282,7 @@ local.get $2 return ) - (func $std/array/Ref#constructor (; 254 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/Ref#constructor (; 252 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -15359,7 +14294,7 @@ end local.get $0 ) - (func $~lib/array/Array#join_ref (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_ref (; 253 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15382,17 +14317,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -15400,17 +14331,13 @@ local.get $2 i32.eqz if - block - i32.const 6696 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 6696 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $1 call $~lib/string/String#get:length @@ -15443,26 +14370,24 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - local.get $4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $10 - local.get $9 - local.tee $11 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $11 - call $~lib/rt/pure/__release - end + local.get $4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $9 + local.tee $11 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release end + local.get $10 local.set $9 local.get $9 if @@ -15503,7 +14428,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -15533,23 +14457,19 @@ local.get $8 i32.gt_s if - block - local.get $7 - i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $7 + i32.const 0 + local.get $8 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $7 local.set $3 @@ -15559,7 +14479,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 254 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15573,12 +14493,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 257 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 255 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 258 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 256 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -15587,7 +14507,7 @@ call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 259 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 257 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15638,22 +14558,20 @@ local.get $4 i32.add local.set $3 - block $~lib/util/number/utoa32_core|inlined.6 - local.get $0 - local.set $7 - local.get $2 - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - local.set $6 - local.get $3 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - end + local.get $0 + local.set $7 + local.get $2 + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + local.set $6 + local.get $3 + local.set $5 + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut local.get $4 if local.get $0 @@ -15662,7 +14580,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 260 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15684,17 +14602,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -15702,22 +14616,18 @@ local.get $2 i32.eqz if - block - local.get $4 - i32.load8_s - call $~lib/util/number/itoa - local.tee $3 - call $~lib/rt/pure/__retain - local.set $5 - local.get $3 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - return - unreachable - end - unreachable + local.get $4 + i32.load8_s + call $~lib/util/number/itoa + local.tee $3 + call $~lib/rt/pure/__retain + local.set $5 + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return end local.get $1 call $~lib/string/String#get:length @@ -15784,7 +14694,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -15806,21 +14715,17 @@ local.get $9 i32.gt_s if - block - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $8 local.set $3 @@ -15828,7 +14733,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 261 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 259 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -15842,19 +14747,19 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 262 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 260 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 263 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 261 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 65535 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 264 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 262 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15883,23 +14788,21 @@ i32.and call $~lib/util/number/decimalCount32 local.set $3 - block $~lib/util/number/utoa32_core|inlined.7 - local.get $0 - local.set $6 - local.get $2 - i32.const 65535 - i32.and - local.set $5 - local.get $3 - local.set $4 - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_lut - end + local.get $0 + local.set $6 + local.get $2 + i32.const 65535 + i32.and + local.set $5 + local.get $3 + local.set $4 + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/array/Array#join_int (; 265 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 263 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15921,17 +14824,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -15939,22 +14838,18 @@ local.get $2 i32.eqz if - block - local.get $4 - i32.load16_u - call $~lib/util/number/itoa - local.tee $3 - call $~lib/rt/pure/__retain - local.set $5 - local.get $3 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - return - unreachable - end - unreachable + local.get $4 + i32.load16_u + call $~lib/util/number/itoa + local.tee $3 + call $~lib/rt/pure/__retain + local.set $5 + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return end local.get $1 call $~lib/string/String#get:length @@ -16021,7 +14916,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -16043,21 +14937,17 @@ local.get $9 i32.gt_s if - block - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $8 local.set $3 @@ -16065,7 +14955,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 266 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 264 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -16079,12 +14969,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 267 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 265 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/decimalCount64 (; 268 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 266 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -16118,7 +15008,6 @@ return end unreachable - unreachable else local.get $0 i64.const 100000000000000000 @@ -16148,12 +15037,10 @@ return end unreachable - unreachable end unreachable - unreachable ) - (func $~lib/util/number/utoa64_lut (; 269 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 267 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -16271,7 +15158,6 @@ i64.or i64.store br $continue|0 - unreachable end unreachable end @@ -16281,7 +15167,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 270 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 268 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16312,18 +15198,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $1 - block $~lib/util/number/utoa32_core|inlined.8 - local.get $1 - local.set $6 - local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_lut - end + local.get $1 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_lut else local.get $0 call $~lib/util/number/decimalCount64 @@ -16334,28 +15218,26 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $1 - block $~lib/util/number/utoa64_core|inlined.0 - local.get $1 - local.set $5 - local.get $0 - local.set $7 - local.get $3 - local.set $4 - local.get $5 - local.get $7 - local.get $4 - call $~lib/util/number/utoa64_lut - end + local.get $1 + local.set $5 + local.get $0 + local.set $7 + local.get $3 + local.set $4 + local.get $5 + local.get $7 + local.get $4 + call $~lib/util/number/utoa64_lut end local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 271 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 269 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/utoa64 return ) - (func $~lib/util/number/itoa_stream (; 272 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 270 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16389,38 +15271,34 @@ local.get $4 call $~lib/util/number/decimalCount32 local.set $3 - block $~lib/util/number/utoa32_core|inlined.9 - local.get $0 - local.set $7 - local.get $4 - local.set $6 - local.get $3 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - end + local.get $0 + local.set $7 + local.get $4 + local.set $6 + local.get $3 + local.set $5 + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut else local.get $2 call $~lib/util/number/decimalCount64 local.set $3 - block $~lib/util/number/utoa64_core|inlined.1 - local.get $0 - local.set $6 - local.get $2 - local.set $8 - local.get $3 - local.set $5 - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_lut - end + local.get $0 + local.set $6 + local.get $2 + local.set $8 + local.get $3 + local.set $5 + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_lut end local.get $3 ) - (func $~lib/array/Array#join_int (; 273 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 271 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16442,17 +15320,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -16460,22 +15334,18 @@ local.get $2 i32.eqz if - block - local.get $4 - i64.load - call $~lib/util/number/itoa - local.tee $3 - call $~lib/rt/pure/__retain - local.set $5 - local.get $3 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - return - unreachable - end - unreachable + local.get $4 + i64.load + call $~lib/util/number/itoa + local.tee $3 + call $~lib/rt/pure/__retain + local.set $5 + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return end local.get $1 call $~lib/string/String#get:length @@ -16542,7 +15412,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -16564,21 +15433,17 @@ local.get $9 i32.gt_s if - block - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $8 local.set $3 @@ -16586,7 +15451,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 274 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 272 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -16600,12 +15465,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 275 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 273 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa64 (; 276 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 274 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16650,18 +15515,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $2 - block $~lib/util/number/utoa32_core|inlined.10 - local.get $2 - local.set $7 - local.get $3 - local.set $6 - local.get $4 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - end + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut else local.get $0 call $~lib/util/number/decimalCount64 @@ -16674,18 +15537,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $2 - block $~lib/util/number/utoa64_core|inlined.2 - local.get $2 - local.set $6 - local.get $0 - local.set $8 - local.get $4 - local.set $5 - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_lut - end + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_lut end local.get $1 if @@ -16696,12 +15557,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 277 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 275 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/itoa64 return ) - (func $~lib/util/number/itoa_stream (; 278 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 276 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16749,36 +15610,32 @@ local.get $4 i32.add local.set $3 - block $~lib/util/number/utoa32_core|inlined.11 - local.get $0 - local.set $8 - local.get $5 - local.set $7 - local.get $3 - local.set $6 - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/number/utoa32_lut - end + local.get $0 + local.set $8 + local.get $5 + local.set $7 + local.get $3 + local.set $6 + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/number/utoa32_lut else local.get $2 call $~lib/util/number/decimalCount64 local.get $4 i32.add local.set $3 - block $~lib/util/number/utoa64_core|inlined.3 - local.get $0 - local.set $7 - local.get $2 - local.set $9 - local.get $3 - local.set $6 - local.get $7 - local.get $9 - local.get $6 - call $~lib/util/number/utoa64_lut - end + local.get $0 + local.set $7 + local.get $2 + local.set $9 + local.get $3 + local.set $6 + local.get $7 + local.get $9 + local.get $6 + call $~lib/util/number/utoa64_lut end local.get $4 if @@ -16788,7 +15645,7 @@ end local.get $3 ) - (func $~lib/array/Array#join_int (; 279 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 277 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16810,17 +15667,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -16828,22 +15681,18 @@ local.get $2 i32.eqz if - block - local.get $4 - i64.load - call $~lib/util/number/itoa - local.tee $3 - call $~lib/rt/pure/__retain - local.set $5 - local.get $3 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - return - unreachable - end - unreachable + local.get $4 + i64.load + call $~lib/util/number/itoa + local.tee $3 + call $~lib/rt/pure/__retain + local.set $5 + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return end local.get $1 call $~lib/string/String#get:length @@ -16910,7 +15759,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -16932,21 +15780,17 @@ local.get $9 i32.gt_s if - block - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $8 local.set $3 @@ -16954,7 +15798,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 280 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 278 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -16968,12 +15812,12 @@ local.get $2 return ) - (func $~lib/array/Array#toString (; 281 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 279 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array#join ) - (func $~lib/array/Array<~lib/string/String | null>#join_str (; 282 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join_str (; 280 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16997,17 +15841,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -17015,18 +15855,14 @@ local.get $2 i32.eqz if - block - local.get $4 - i32.load - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $4 + i32.load + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $1 call $~lib/string/String#get:length @@ -17036,40 +15872,36 @@ i32.const 0 local.set $7 block $break|0 - block - i32.const 0 - local.set $3 - local.get $2 - i32.const 1 - i32.add - local.set $8 - end + i32.const 0 + local.set $3 + local.get $2 + i32.const 1 + i32.add + local.set $8 loop $loop|0 local.get $3 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - local.get $4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $7 - local.tee $10 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $7 + local.tee $10 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $9 local.set $7 local.get $7 i32.const 0 @@ -17086,7 +15918,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -17112,26 +15943,24 @@ i32.lt_s i32.eqz br_if $break|1 - block (result i32) - local.get $4 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $10 - local.get $7 - local.tee $3 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $3 - call $~lib/rt/pure/__release - end + local.get $4 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release end + local.get $10 local.set $7 local.get $7 i32.const 0 @@ -17177,30 +16006,27 @@ i32.add local.set $8 br $loop|1 - unreachable end unreachable end - block (result i32) - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $7 - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $7 + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 local.set $7 local.get $7 i32.const 0 @@ -17226,7 +16052,7 @@ call $~lib/rt/pure/__release local.get $9 ) - (func $~lib/array/Array<~lib/string/String | null>#join (; 283 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join (; 281 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17240,17 +16066,17 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 284 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 282 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/string/String | null>#join ) - (func $~lib/array/Array<~lib/string/String>#toString (; 285 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#toString (; 283 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/string/String>#join ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 286 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 284 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17273,17 +16099,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end i32.const 4248 call $~lib/rt/pure/__retain @@ -17299,22 +16121,20 @@ local.get $2 i32.eqz if - block (result i32) - local.get $6 - i32.load - local.tee $3 - local.get $7 - local.tee $8 - i32.ne - if - local.get $3 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $6 + i32.load + local.tee $3 + local.get $7 + local.tee $8 + i32.ne + if local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $3 local.set $7 local.get $7 if (result i32) @@ -17344,122 +16164,14 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - local.get $7 - local.tee $9 - i32.ne - if - local.get $8 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end - local.get $8 - end - local.set $7 - local.get $7 - if - block (result i32) - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $8 - call $~lib/string/String.__concat - local.tee $9 - local.tee $10 - local.get $4 - local.tee $11 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $11 - call $~lib/rt/pure/__release - end - local.get $10 - end - local.set $4 - local.get $8 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - end - local.get $5 - if - block (result i32) - local.get $4 - local.get $1 - call $~lib/string/String.__concat - local.tee $9 - local.tee $11 - local.get $4 - local.tee $8 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end - local.get $11 - end - local.set $4 - local.get $9 - call $~lib/rt/pure/__release - end + local.get $6 local.get $3 - i32.const 1 + i32.const 2 + i32.shl i32.add - local.set $3 - br $loop|0 - unreachable - end - unreachable - end - block (result i32) - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $10 - local.get $7 - local.tee $3 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $3 - call $~lib/rt/pure/__release - end - local.get $10 - end - local.set $7 - local.get $7 - if - block (result i32) - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $10 - call $~lib/string/String.__concat - local.tee $3 + i32.load local.tee $8 - local.get $4 + local.get $7 local.tee $9 i32.ne if @@ -17470,7 +16182,104 @@ call $~lib/rt/pure/__release end local.get $8 + local.set $7 + local.get $7 + if + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $8 + call $~lib/string/String.__concat + local.tee $9 + local.tee $10 + local.get $4 + local.tee $11 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release + end + local.get $10 + local.set $4 + local.get $8 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + end + local.get $5 + if + local.get $4 + local.get $1 + call $~lib/string/String.__concat + local.tee $9 + local.tee $11 + local.get $4 + local.tee $8 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $4 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $loop|0 end + unreachable + end + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + local.set $7 + local.get $7 + if + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $10 + call $~lib/string/String.__concat + local.tee $3 + local.tee $8 + local.get $4 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 local.set $4 local.get $10 call $~lib/rt/pure/__release @@ -17485,7 +16294,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 287 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 285 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17499,19 +16308,19 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 288 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 286 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/util/number/itoa (; 289 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 287 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 290 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 288 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17540,23 +16349,21 @@ i32.and call $~lib/util/number/decimalCount32 local.set $3 - block $~lib/util/number/utoa32_core|inlined.12 - local.get $0 - local.set $6 - local.get $2 - i32.const 255 - i32.and - local.set $5 - local.get $3 - local.set $4 - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_lut - end + local.get $0 + local.set $6 + local.get $2 + i32.const 255 + i32.and + local.set $5 + local.get $3 + local.set $4 + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/array/Array#join_int (; 291 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join_int (; 289 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17578,17 +16385,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 i32.load offset=4 @@ -17596,22 +16399,18 @@ local.get $2 i32.eqz if - block - local.get $4 - i32.load8_u - call $~lib/util/number/itoa - local.tee $3 - call $~lib/rt/pure/__retain - local.set $5 - local.get $3 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $5 - return - unreachable - end - unreachable + local.get $4 + i32.load8_u + call $~lib/util/number/itoa + local.tee $3 + call $~lib/rt/pure/__retain + local.set $5 + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $5 + return end local.get $1 call $~lib/string/String#get:length @@ -17678,7 +16477,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -17700,21 +16498,17 @@ local.get $9 i32.gt_s if - block - local.get $8 - i32.const 0 - local.get $9 - call $~lib/string/String#substring - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + local.get $8 + i32.const 0 + local.get $9 + call $~lib/string/String#substring + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $8 local.set $3 @@ -17722,7 +16516,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#join (; 292 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 290 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17736,7 +16530,7 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 293 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 291 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17759,17 +16553,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end i32.const 4248 call $~lib/rt/pure/__retain @@ -17785,22 +16575,20 @@ local.get $2 i32.eqz if - block (result i32) - local.get $6 - i32.load - local.tee $3 - local.get $7 - local.tee $8 - i32.ne - if - local.get $3 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $6 + i32.load + local.tee $3 + local.get $7 + local.tee $8 + i32.ne + if local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $3 local.set $7 local.get $7 if (result i32) @@ -17830,122 +16618,14 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - local.get $7 - local.tee $9 - i32.ne - if - local.get $8 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end - local.get $8 - end - local.set $7 - local.get $7 - if - block (result i32) - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $8 - call $~lib/string/String.__concat - local.tee $9 - local.tee $10 - local.get $4 - local.tee $11 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $11 - call $~lib/rt/pure/__release - end - local.get $10 - end - local.set $4 - local.get $8 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - end - local.get $5 - if - block (result i32) - local.get $4 - local.get $1 - call $~lib/string/String.__concat - local.tee $9 - local.tee $11 - local.get $4 - local.tee $8 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end - local.get $11 - end - local.set $4 - local.get $9 - call $~lib/rt/pure/__release - end + local.get $6 local.get $3 - i32.const 1 + i32.const 2 + i32.shl i32.add - local.set $3 - br $loop|0 - unreachable - end - unreachable - end - block (result i32) - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $10 - local.get $7 - local.tee $3 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $3 - call $~lib/rt/pure/__release - end - local.get $10 - end - local.set $7 - local.get $7 - if - block (result i32) - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $10 - call $~lib/string/String.__concat - local.tee $3 + i32.load local.tee $8 - local.get $4 + local.get $7 local.tee $9 i32.ne if @@ -17956,7 +16636,104 @@ call $~lib/rt/pure/__release end local.get $8 + local.set $7 + local.get $7 + if + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $8 + call $~lib/string/String.__concat + local.tee $9 + local.tee $10 + local.get $4 + local.tee $11 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release + end + local.get $10 + local.set $4 + local.get $8 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + end + local.get $5 + if + local.get $4 + local.get $1 + call $~lib/string/String.__concat + local.tee $9 + local.tee $11 + local.get $4 + local.tee $8 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $4 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $loop|0 end + unreachable + end + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + local.set $7 + local.get $7 + if + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $10 + call $~lib/string/String.__concat + local.tee $3 + local.tee $8 + local.get $4 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 local.set $4 local.get $10 call $~lib/rt/pure/__release @@ -17971,7 +16748,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 294 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 292 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -17985,12 +16762,12 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 295 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 293 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/array/Array<~lib/array/Array>#join_arr (; 296 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join_arr (; 294 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18013,17 +16790,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end i32.const 4248 call $~lib/rt/pure/__retain @@ -18039,22 +16812,20 @@ local.get $2 i32.eqz if - block (result i32) - local.get $6 - i32.load - local.tee $3 - local.get $7 - local.tee $8 - i32.ne - if - local.get $3 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $6 + i32.load + local.tee $3 + local.get $7 + local.tee $8 + i32.ne + if local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $3 local.set $7 local.get $7 if (result i32) @@ -18084,122 +16855,14 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - local.get $7 - local.tee $9 - i32.ne - if - local.get $8 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end - local.get $8 - end - local.set $7 - local.get $7 - if - block (result i32) - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $8 - call $~lib/string/String.__concat - local.tee $9 - local.tee $10 - local.get $4 - local.tee $11 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $11 - call $~lib/rt/pure/__release - end - local.get $10 - end - local.set $4 - local.get $8 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - end - local.get $5 - if - block (result i32) - local.get $4 - local.get $1 - call $~lib/string/String.__concat - local.tee $9 - local.tee $11 - local.get $4 - local.tee $8 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end - local.get $11 - end - local.set $4 - local.get $9 - call $~lib/rt/pure/__release - end + local.get $6 local.get $3 - i32.const 1 + i32.const 2 + i32.shl i32.add - local.set $3 - br $loop|0 - unreachable - end - unreachable - end - block (result i32) - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $10 - local.get $7 - local.tee $3 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $3 - call $~lib/rt/pure/__release - end - local.get $10 - end - local.set $7 - local.get $7 - if - block (result i32) - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array#join - local.tee $10 - call $~lib/string/String.__concat - local.tee $3 + i32.load local.tee $8 - local.get $4 + local.get $7 local.tee $9 i32.ne if @@ -18210,7 +16873,104 @@ call $~lib/rt/pure/__release end local.get $8 + local.set $7 + local.get $7 + if + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $8 + call $~lib/string/String.__concat + local.tee $9 + local.tee $10 + local.get $4 + local.tee $11 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release + end + local.get $10 + local.set $4 + local.get $8 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + end + local.get $5 + if + local.get $4 + local.get $1 + call $~lib/string/String.__concat + local.tee $9 + local.tee $11 + local.get $4 + local.tee $8 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $4 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $loop|0 end + unreachable + end + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + local.set $7 + local.get $7 + if + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array#join + local.tee $10 + call $~lib/string/String.__concat + local.tee $3 + local.tee $8 + local.get $4 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 local.set $4 local.get $10 call $~lib/rt/pure/__release @@ -18225,7 +16985,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 297 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 295 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -18239,7 +16999,7 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 298 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join_arr (; 296 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -18262,17 +17022,13 @@ i32.const 0 i32.lt_s if - block - i32.const 4248 - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 4248 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end i32.const 4248 call $~lib/rt/pure/__retain @@ -18288,22 +17044,20 @@ local.get $2 i32.eqz if - block (result i32) - local.get $6 - i32.load - local.tee $3 - local.get $7 - local.tee $8 - i32.ne - if - local.get $3 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $6 + i32.load + local.tee $3 + local.get $7 + local.tee $8 + i32.ne + if local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $3 local.set $7 local.get $7 if (result i32) @@ -18333,122 +17087,14 @@ i32.lt_s i32.eqz br_if $break|0 - block (result i32) - local.get $6 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - local.get $7 - local.tee $9 - i32.ne - if - local.get $8 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end - local.get $8 - end - local.set $7 - local.get $7 - if - block (result i32) - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#join - local.tee $8 - call $~lib/string/String.__concat - local.tee $9 - local.tee $10 - local.get $4 - local.tee $11 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $11 - call $~lib/rt/pure/__release - end - local.get $10 - end - local.set $4 - local.get $8 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - end - local.get $5 - if - block (result i32) - local.get $4 - local.get $1 - call $~lib/string/String.__concat - local.tee $9 - local.tee $11 - local.get $4 - local.tee $8 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end - local.get $11 - end - local.set $4 - local.get $9 - call $~lib/rt/pure/__release - end + local.get $6 local.get $3 - i32.const 1 + i32.const 2 + i32.shl i32.add - local.set $3 - br $loop|0 - unreachable - end - unreachable - end - block (result i32) - local.get $6 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $10 - local.get $7 - local.tee $3 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $3 - call $~lib/rt/pure/__release - end - local.get $10 - end - local.set $7 - local.get $7 - if - block (result i32) - local.get $4 - local.get $7 - local.get $1 - call $~lib/array/Array<~lib/array/Array>#join - local.tee $10 - call $~lib/string/String.__concat - local.tee $3 + i32.load local.tee $8 - local.get $4 + local.get $7 local.tee $9 i32.ne if @@ -18459,7 +17105,104 @@ call $~lib/rt/pure/__release end local.get $8 + local.set $7 + local.get $7 + if + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#join + local.tee $8 + call $~lib/string/String.__concat + local.tee $9 + local.tee $10 + local.get $4 + local.tee $11 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $11 + call $~lib/rt/pure/__release + end + local.get $10 + local.set $4 + local.get $8 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + end + local.get $5 + if + local.get $4 + local.get $1 + call $~lib/string/String.__concat + local.tee $9 + local.tee $11 + local.get $4 + local.tee $8 + i32.ne + if + local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release + end + local.get $11 + local.set $4 + local.get $9 + call $~lib/rt/pure/__release + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $loop|0 end + unreachable + end + local.get $6 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $10 + local.get $7 + local.tee $3 + i32.ne + if + local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release + end + local.get $10 + local.set $7 + local.get $7 + if + local.get $4 + local.get $7 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#join + local.tee $10 + call $~lib/string/String.__concat + local.tee $3 + local.tee $8 + local.get $4 + local.tee $9 + i32.ne + if + local.get $8 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release + end + local.get $8 local.set $4 local.get $10 call $~lib/rt/pure/__release @@ -18474,7 +17217,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 299 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 297 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 call $~lib/rt/pure/__retain @@ -18488,12 +17231,12 @@ local.get $2 return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 300 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 298 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 4512 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join ) - (func $start:std/array (; 301 ;) (type $FUNCSIG$v) + (func $start:std/array (; 299 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -18555,5766 +17298,5647 @@ i32.const 0 call $~lib/array/Array#constructor global.set $std/array/arr - block + i32.const 0 + call $~lib/array/Array.isArray<~lib/array/Array | null> + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - call $~lib/array/Array.isArray<~lib/array/Array | null> - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 35 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array.isArray<~lib/array/Array> - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 36 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $std/array/P#constructor - local.tee $0 - call $~lib/array/Array.isArray - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 37 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - call $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 38 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - call $~lib/array/Array.isArray - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 39 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 416 - call $~lib/array/Array.isArray<~lib/string/String> - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 40 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - end - block - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 440 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $~lib/rt/pure/__retain - local.set $1 - local.get $1 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 464 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 48 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 536 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 51 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 - i32.const 0 - i32.const 6 - i32.const 560 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 54 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 + i32.const 376 + i32.const 35 i32.const 2 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array.isArray<~lib/array/Array> + i32.const 1 + i32.eq + i32.eqz + if i32.const 0 - i32.const 6 - i32.const 584 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 + i32.const 376 + i32.const 36 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $std/array/P#constructor + local.tee $0 + call $~lib/array/Array.isArray + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 57 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 + i32.const 376 + i32.const 37 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + call $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - i32.const 1 + i32.const 376 + i32.const 38 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $~lib/array/Array.isArray + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $1 - i32.const 5 + i32.const 376 + i32.const 39 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 416 + call $~lib/array/Array.isArray<~lib/string/String> + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - i32.const 6 - i32.const 608 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 + i32.const 376 + i32.const 40 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 440 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $0 + call $~lib/rt/pure/__retain + local.set $1 + local.get $1 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 464 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 60 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + i32.const 376 + i32.const 48 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 536 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 51 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 560 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 54 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 584 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 57 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $1 + i32.const 5 + i32.const 0 + i32.const 6 + i32.const 608 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 60 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 632 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $~lib/rt/pure/__retain + local.set $7 + local.get $7 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $7 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 672 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 67 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $7 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 712 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 70 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $7 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 752 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 73 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $7 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 792 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 76 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/array/Array#fill + call $~lib/rt/pure/__release + local.get $7 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 832 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 79 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 85 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 86 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 42 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 90 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 91 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 92 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + local.set $2 + local.get $2 + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 96 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 97 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 98 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + call $~lib/array/Array#push + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 102 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 103 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 104 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 44 + call $~lib/array/Array#push + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 108 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 109 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 110 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 111 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 45 + call $~lib/array/Array#push + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 115 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 116 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 117 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 118 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 119 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 0 + call $~lib/array/Array#constructor + local.set $2 + global.get $std/array/arr + local.get $2 + call $~lib/array/Array#concat + local.set $0 + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 128 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 129 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 130 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 920 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + call $~lib/array/Array#concat + call $~lib/rt/pure/__release + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 133 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 135 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 136 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 137 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 46 + call $~lib/array/Array#push + drop + local.get $2 + i32.const 47 + call $~lib/array/Array#push + drop + global.get $std/array/arr + local.get $2 + call $~lib/array/Array#concat + local.set $5 + local.get $0 + call $~lib/rt/pure/__release + local.get $5 + local.set $0 + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 144 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 145 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/array/Array#get:length + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 146 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 147 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 148 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 149 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 3 + call $~lib/array/Array#__get + i32.const 46 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 150 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4 + call $~lib/array/Array#__get + i32.const 47 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 151 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/array/Array#pop + drop + local.get $0 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 154 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#concat + local.set $6 + local.get $0 + call $~lib/rt/pure/__release + local.get $6 + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 157 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 158 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 936 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $~lib/rt/pure/__retain + local.set $6 + local.get $6 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 161 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $6 + global.get $std/array/arr + call $~lib/array/Array#concat + local.set $7 + local.get $0 + call $~lib/rt/pure/__release + local.get $7 + local.set $0 + local.get $0 + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 163 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 164 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + i32.const 0 + local.set $6 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 952 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + local.tee $4 + local.get $6 + local.tee $5 + i32.ne + if local.get $4 - call $~lib/rt/pure/__release + call $~lib/rt/pure/__retain + drop local.get $5 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release end - block - i32.const 5 + local.get $4 + local.set $6 + local.get $6 + i32.const 0 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $4 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 992 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $0 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 172 i32.const 2 - i32.const 7 - i32.const 632 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $~lib/rt/pure/__retain - local.set $7 - local.get $7 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $7 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 672 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 67 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $7 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 712 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 70 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $7 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 752 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 73 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 2 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $7 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 792 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 76 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $7 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/array/Array#fill - call $~lib/rt/pure/__release - local.get $7 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 832 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $2 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 79 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $6 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1032 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + local.tee $1 + local.get $6 + local.tee $5 + i32.ne + if local.get $1 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - end - block - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 85 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 86 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 42 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 90 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 91 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 92 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - local.set $2 - local.get $2 - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 96 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 97 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 98 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - call $~lib/array/Array#push - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 102 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 103 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 44 - call $~lib/array/Array#push - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 108 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 109 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 110 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 111 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 45 - call $~lib/array/Array#push - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 115 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 116 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 117 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 118 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 119 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - end - block - i32.const 0 - i32.const 0 - call $~lib/array/Array#constructor - local.set $2 - global.get $std/array/arr - local.get $2 - call $~lib/array/Array#concat - local.set $0 - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 128 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 129 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 130 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 920 - call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $3 - call $~lib/array/Array#concat - call $~lib/rt/pure/__release - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 133 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 135 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 136 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 137 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 46 - call $~lib/array/Array#push drop - local.get $2 - i32.const 47 - call $~lib/array/Array#push - drop - block (result i32) - global.get $std/array/arr - local.get $2 - call $~lib/array/Array#concat - local.set $5 - local.get $0 - call $~lib/rt/pure/__release - local.get $5 - end - local.set $0 - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 144 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 145 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/array/Array#get:length - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 146 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 147 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 148 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 149 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 3 - call $~lib/array/Array#__get - i32.const 46 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 150 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 4 - call $~lib/array/Array#__get - i32.const 47 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 151 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/array/Array#pop - drop - local.get $0 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 154 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#concat - local.set $6 - local.get $0 - call $~lib/rt/pure/__release - local.get $6 - end - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 157 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 158 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 936 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $~lib/rt/pure/__retain - local.set $6 - local.get $6 - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 161 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $6 - global.get $std/array/arr - call $~lib/array/Array#concat - local.set $7 - local.get $0 - call $~lib/rt/pure/__release - local.get $7 - end - local.set $0 - local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 163 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $6 - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 164 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release end - block + local.get $1 + local.set $6 + local.get $6 + i32.const 1 + i32.const 3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $1 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1072 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if i32.const 0 - local.set $6 - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 952 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - local.tee $4 - local.get $6 - local.tee $5 - i32.ne - if - local.get $4 - call $~lib/rt/pure/__retain - drop - local.get $5 - call $~lib/rt/pure/__release - end - local.get $4 - end - local.set $6 - local.get $6 - i32.const 0 - i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $4 - i32.const 5 + i32.const 376 + i32.const 174 i32.const 2 - i32.const 3 - i32.const 992 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 172 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1032 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $2 - local.tee $1 - local.get $6 - local.tee $5 - i32.ne - if - local.get $1 - call $~lib/rt/pure/__retain - drop - local.get $5 - call $~lib/rt/pure/__release - end - local.get $1 - end - local.set $6 - local.get $6 - i32.const 1 - i32.const 3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $1 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1072 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 174 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1112 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - local.tee $5 - local.get $6 - local.tee $9 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end - local.get $5 - end - local.set $6 - local.get $6 - i32.const 1 - i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $5 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1152 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $10 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 176 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1192 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $11 - local.tee $9 - local.get $6 - local.tee $12 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $12 - call $~lib/rt/pure/__release - end - local.get $9 - end - local.set $6 - local.get $6 - i32.const 2 - i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $9 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1232 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $13 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 178 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1272 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $14 - local.tee $12 - local.get $6 - local.tee $15 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - drop - local.get $15 - call $~lib/rt/pure/__release - end - local.get $12 - end - local.set $6 - local.get $6 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/array/Array#copyWithin - local.tee $12 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1312 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $16 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 180 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1352 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $17 - local.tee $15 - local.get $6 - local.tee $18 - i32.ne - if - local.get $15 - call $~lib/rt/pure/__retain - drop - local.get $18 - call $~lib/rt/pure/__release - end - local.get $15 - end - local.set $6 - local.get $6 - i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/array/Array#copyWithin - local.tee $15 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1392 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $19 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 182 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1432 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $20 - local.tee $18 - local.get $6 - local.tee $21 - i32.ne - if - local.get $18 - call $~lib/rt/pure/__retain - drop - local.get $21 - call $~lib/rt/pure/__release - end - local.get $18 - end - local.set $6 - local.get $6 - i32.const 1 - i32.const 2 - i32.const 4 - call $~lib/array/Array#copyWithin - local.tee $18 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1472 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $22 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 184 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1512 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $23 - local.tee $21 - local.get $6 - local.tee $24 - i32.ne - if - local.get $21 - call $~lib/rt/pure/__retain - drop - local.get $24 - call $~lib/rt/pure/__release - end - local.get $21 - end - local.set $6 - local.get $6 - i32.const 0 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $21 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1552 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $25 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 186 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1592 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $26 - local.tee $24 - local.get $6 - local.tee $27 - i32.ne - if - local.get $24 - call $~lib/rt/pure/__retain - drop - local.get $27 - call $~lib/rt/pure/__release - end - local.get $24 - end - local.set $6 - local.get $6 - i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/array/Array#copyWithin - local.tee $24 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1632 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $28 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 188 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1672 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $29 - local.tee $27 - local.get $6 - local.tee $30 - i32.ne - if - local.get $27 - call $~lib/rt/pure/__retain - drop - local.get $30 - call $~lib/rt/pure/__release - end - local.get $27 - end - local.set $6 - local.get $6 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/array/Array#copyWithin - local.tee $27 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1712 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $31 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 190 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1752 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $32 - local.tee $30 - local.get $6 - local.tee $33 - i32.ne - if - local.get $30 - call $~lib/rt/pure/__retain - drop - local.get $33 - call $~lib/rt/pure/__release - end - local.get $30 - end - local.set $6 - local.get $6 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/array/Array#copyWithin - local.tee $30 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1792 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $34 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 192 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1832 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $35 - local.tee $33 - local.get $6 - local.tee $36 - i32.ne - if - local.get $33 - call $~lib/rt/pure/__retain - drop - local.get $36 - call $~lib/rt/pure/__release - end - local.get $33 - end - local.set $6 - local.get $6 - i32.const -4 - i32.const -3 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#copyWithin - local.tee $33 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1872 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $37 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 194 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $6 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1112 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + local.tee $5 + local.get $6 + local.tee $9 + i32.ne + if local.get $5 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release + call $~lib/rt/pure/__retain + drop local.get $9 call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release + end + local.get $5 + local.set $6 + local.get $6 + i32.const 1 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $5 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1152 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $10 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 176 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1192 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $11 + local.tee $9 + local.get $6 + local.tee $12 + i32.ne + if + local.get $9 + call $~lib/rt/pure/__retain + drop local.get $12 call $~lib/rt/pure/__release - local.get $16 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release + end + local.get $9 + local.set $6 + local.get $6 + i32.const 2 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $9 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1232 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $13 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 178 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1272 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $14 + local.tee $12 + local.get $6 + local.tee $15 + i32.ne + if + local.get $12 + call $~lib/rt/pure/__retain + drop local.get $15 call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release - local.get $20 - call $~lib/rt/pure/__release + end + local.get $12 + local.set $6 + local.get $6 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.tee $12 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1312 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $16 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 180 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1352 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $17 + local.tee $15 + local.get $6 + local.tee $18 + i32.ne + if + local.get $15 + call $~lib/rt/pure/__retain + drop local.get $18 call $~lib/rt/pure/__release - local.get $22 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release + end + local.get $15 + local.set $6 + local.get $6 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/array/Array#copyWithin + local.tee $15 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1392 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $19 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 182 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1432 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $20 + local.tee $18 + local.get $6 + local.tee $21 + i32.ne + if + local.get $18 + call $~lib/rt/pure/__retain + drop local.get $21 call $~lib/rt/pure/__release - local.get $25 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release + end + local.get $18 + local.set $6 + local.get $6 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/array/Array#copyWithin + local.tee $18 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1472 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $22 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 184 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1512 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $23 + local.tee $21 + local.get $6 + local.tee $24 + i32.ne + if + local.get $21 + call $~lib/rt/pure/__retain + drop local.get $24 call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release + end + local.get $21 + local.set $6 + local.get $6 + i32.const 0 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $21 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1552 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $25 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 186 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1592 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $26 + local.tee $24 + local.get $6 + local.tee $27 + i32.ne + if + local.get $24 + call $~lib/rt/pure/__retain + drop local.get $27 call $~lib/rt/pure/__release - local.get $31 - call $~lib/rt/pure/__release - local.get $32 - call $~lib/rt/pure/__release + end + local.get $24 + local.set $6 + local.get $6 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/array/Array#copyWithin + local.tee $24 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1632 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $28 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 188 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1672 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $29 + local.tee $27 + local.get $6 + local.tee $30 + i32.ne + if + local.get $27 + call $~lib/rt/pure/__retain + drop local.get $30 call $~lib/rt/pure/__release - local.get $34 - call $~lib/rt/pure/__release - local.get $35 - call $~lib/rt/pure/__release - local.get $33 - call $~lib/rt/pure/__release - local.get $37 - call $~lib/rt/pure/__release end - block - global.get $std/array/arr - i32.const 42 - call $~lib/array/Array#unshift - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 202 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 203 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr + local.get $27 + local.set $6 + local.get $6 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/array/Array#copyWithin + local.tee $27 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1712 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $31 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 204 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 205 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr + i32.const 376 + i32.const 190 i32.const 2 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 206 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 207 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 41 - call $~lib/array/Array#unshift - drop - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 211 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 212 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 41 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 213 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 214 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 215 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 216 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 4 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 217 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable end - block - global.get $std/array/arr - call $~lib/array/Array#shift - global.set $std/array/i - global.get $std/array/i - i32.const 41 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 226 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 227 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 228 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 229 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 230 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 231 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#__get - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 232 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - global.set $std/array/i - global.get $std/array/i - i32.const 45 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 236 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 237 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 238 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 239 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 240 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 241 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - end - block - global.get $std/array/arr - call $~lib/array/Array#reverse - call $~lib/rt/pure/__release - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 249 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 250 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 251 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 43 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 252 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 253 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 44 - call $~lib/array/Array#push - drop - end - block - global.get $std/array/arr - i32.const 44 - i32.const 0 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 263 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 42 - i32.const 0 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 266 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 45 - i32.const 0 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 269 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 100 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 272 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -100 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 275 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -2 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 278 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -4 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 281 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 0 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 284 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 1 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 287 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 2 - call $~lib/array/Array#indexOf - global.set $std/array/i - global.get $std/array/i - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 290 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - end - block - global.get $std/array/arr - i32.const 44 - i32.const 0 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 297 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 42 - i32.const 0 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 300 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 45 - i32.const 0 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 303 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 100 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 306 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -100 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 309 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -2 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 312 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const -4 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 315 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 0 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 318 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 1 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 321 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 43 - i32.const 2 - call $~lib/array/Array#includes - local.set $37 - local.get $37 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 324 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - i32.const 1 - call $~lib/array/Array#splice - call $~lib/rt/pure/__release - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 328 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $std/array/internalCapacity - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 329 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - i32.const 44 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 330 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#__get - i32.const 42 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 331 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - end - block - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1912 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $33 - call $~lib/rt/pure/__retain - local.set $37 - local.get $37 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.tee $35 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 1952 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $30 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 338 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 1992 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $32 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 339 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2008 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $31 - local.tee $36 - local.get $37 - local.tee $34 - i32.ne - if - local.get $36 - call $~lib/rt/pure/__retain - drop - local.get $34 - call $~lib/rt/pure/__release - end - local.get $36 - end - local.set $37 - local.get $37 - i32.const 2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.tee $36 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 2048 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $27 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 342 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 2080 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $29 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 343 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2104 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $28 - local.tee $6 - local.get $37 - local.tee $34 - i32.ne - if - local.get $6 - call $~lib/rt/pure/__retain - drop - local.get $34 - call $~lib/rt/pure/__release - end - local.get $6 - end - local.set $37 - local.get $37 - i32.const 2 - i32.const 2 - call $~lib/array/Array#splice - local.tee $6 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 2144 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $24 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 346 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 2168 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $26 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 347 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2200 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $25 - local.tee $3 - local.get $37 - local.tee $34 - i32.ne - if - local.get $3 - call $~lib/rt/pure/__retain - drop - local.get $34 - call $~lib/rt/pure/__release - end - local.get $3 - end - local.set $37 - local.get $37 - i32.const 0 - i32.const 1 - call $~lib/array/Array#splice - local.tee $3 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 2240 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $21 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 350 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 2264 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $23 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 351 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2296 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $22 - local.tee $4 - local.get $37 - local.tee $34 - i32.ne - if - local.get $4 - call $~lib/rt/pure/__retain - drop - local.get $34 - call $~lib/rt/pure/__release - end - local.get $4 - end - local.set $37 - local.get $37 - i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.tee $4 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 2336 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $18 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 354 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 2360 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $20 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 355 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2392 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $19 - local.tee $0 - local.get $37 - local.tee $34 - i32.ne - if - local.get $0 - call $~lib/rt/pure/__retain - drop - local.get $34 - call $~lib/rt/pure/__release - end - local.get $0 - end - local.set $37 - local.get $37 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/array/Array#splice - local.tee $0 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 2432 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $15 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 358 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 2456 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $17 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 359 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2488 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $16 - local.tee $2 - local.get $37 - local.tee $34 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - drop - local.get $34 - call $~lib/rt/pure/__release - end - local.get $2 - end - local.set $37 - local.get $37 - i32.const -2 - i32.const 1 - call $~lib/array/Array#splice - local.tee $2 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 2528 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $12 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 362 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 2552 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $14 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 363 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2584 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $13 - local.tee $1 - local.get $37 - local.tee $34 - i32.ne - if - local.get $1 - call $~lib/rt/pure/__retain - drop - local.get $34 - call $~lib/rt/pure/__release - end - local.get $1 - end - local.set $37 - local.get $37 - i32.const -7 - i32.const 1 - call $~lib/array/Array#splice - local.tee $1 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 2624 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 366 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 2648 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $11 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 367 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2680 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $10 - local.tee $7 - local.get $37 - local.tee $34 - i32.ne - if - local.get $7 - call $~lib/rt/pure/__retain - drop - local.get $34 - call $~lib/rt/pure/__release - end - local.get $7 - end - local.set $37 - local.get $37 - i32.const -2 - i32.const -1 - call $~lib/array/Array#splice - local.tee $7 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 2720 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 370 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2736 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 371 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2776 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $38 - local.tee $34 - local.get $37 - local.tee $39 - i32.ne - if - local.get $34 - call $~lib/rt/pure/__retain - drop - local.get $39 - call $~lib/rt/pure/__release - end - local.get $34 - end - local.set $37 - local.get $37 - i32.const 1 - i32.const -2 - call $~lib/array/Array#splice - local.tee $34 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 2816 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $40 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 374 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2832 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $41 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 375 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2872 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $42 - local.tee $39 - local.get $37 - local.tee $43 - i32.ne - if - local.get $39 - call $~lib/rt/pure/__retain - drop - local.get $43 - call $~lib/rt/pure/__release - end - local.get $39 - end - local.set $37 - local.get $37 - i32.const 4 - i32.const 0 - call $~lib/array/Array#splice - local.tee $39 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 2912 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $44 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 378 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2928 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $45 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 379 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 2968 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $46 - local.tee $43 - local.get $37 - local.tee $47 - i32.ne - if - local.get $43 - call $~lib/rt/pure/__retain - drop - local.get $47 - call $~lib/rt/pure/__release - end - local.get $43 - end - local.set $37 - local.get $37 - i32.const 7 - i32.const 0 - call $~lib/array/Array#splice - local.tee $43 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 3008 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $48 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 382 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3024 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $49 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 383 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3064 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $50 - local.tee $47 - local.get $37 - local.tee $51 - i32.ne - if - local.get $47 - call $~lib/rt/pure/__retain - drop - local.get $51 - call $~lib/rt/pure/__release - end - local.get $47 - end - local.set $37 - local.get $37 - i32.const 7 - i32.const 5 - call $~lib/array/Array#splice - local.tee $47 - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 3104 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $52 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 386 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $37 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3120 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $53 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 387 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $33 - call $~lib/rt/pure/__release - local.get $37 - call $~lib/rt/pure/__release - local.get $35 - call $~lib/rt/pure/__release + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1752 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $32 + local.tee $30 + local.get $6 + local.tee $33 + i32.ne + if local.get $30 + call $~lib/rt/pure/__retain + drop + local.get $33 call $~lib/rt/pure/__release - local.get $32 - call $~lib/rt/pure/__release - local.get $31 - call $~lib/rt/pure/__release + end + local.get $30 + local.set $6 + local.get $6 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/array/Array#copyWithin + local.tee $30 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1792 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $34 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 192 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1832 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $35 + local.tee $33 + local.get $6 + local.tee $36 + i32.ne + if + local.get $33 + call $~lib/rt/pure/__retain + drop local.get $36 call $~lib/rt/pure/__release - local.get $27 - call $~lib/rt/pure/__release - local.get $29 - call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release - local.get $25 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $21 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release - local.get $22 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $18 - call $~lib/rt/pure/__release - local.get $20 - call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $15 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - local.get $16 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $38 - call $~lib/rt/pure/__release + end + local.get $33 + local.set $6 + local.get $6 + i32.const -4 + i32.const -3 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#copyWithin + local.tee $33 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1872 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $37 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 194 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $6 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $16 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $19 + call $~lib/rt/pure/__release + local.get $20 + call $~lib/rt/pure/__release + local.get $18 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $21 + call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $27 + call $~lib/rt/pure/__release + local.get $31 + call $~lib/rt/pure/__release + local.get $32 + call $~lib/rt/pure/__release + local.get $30 + call $~lib/rt/pure/__release + local.get $34 + call $~lib/rt/pure/__release + local.get $35 + call $~lib/rt/pure/__release + local.get $33 + call $~lib/rt/pure/__release + local.get $37 + call $~lib/rt/pure/__release + global.get $std/array/arr + i32.const 42 + call $~lib/array/Array#unshift + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 202 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 203 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 204 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 205 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 206 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 207 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 41 + call $~lib/array/Array#unshift + drop + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 211 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 212 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 41 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 213 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 214 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 215 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 216 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 4 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 217 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#shift + global.set $std/array/i + global.get $std/array/i + i32.const 41 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 226 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 227 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 228 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 229 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 230 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 231 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#__get + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 232 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + global.set $std/array/i + global.get $std/array/i + i32.const 45 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 236 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 237 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 238 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 239 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 240 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 241 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#reverse + call $~lib/rt/pure/__release + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 249 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 250 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 251 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 43 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 252 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 253 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 44 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 44 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 263 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 266 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 45 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 269 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 100 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 272 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -100 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 275 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -2 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 278 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -4 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 281 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 0 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 284 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 1 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 287 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 2 + call $~lib/array/Array#indexOf + global.set $std/array/i + global.get $std/array/i + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 290 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 44 + i32.const 0 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 297 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 300 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 45 + i32.const 0 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 303 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 100 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 306 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -100 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 309 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -2 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 312 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const -4 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 315 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 0 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 318 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 1 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 321 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 43 + i32.const 2 + call $~lib/array/Array#includes + local.set $37 + local.get $37 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 324 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + i32.const 1 + call $~lib/array/Array#splice + call $~lib/rt/pure/__release + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 328 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $std/array/internalCapacity + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 329 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + i32.const 44 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 330 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#__get + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 331 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1912 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $33 + call $~lib/rt/pure/__retain + local.set $37 + local.get $37 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.tee $35 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 1952 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $30 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 338 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 1992 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $32 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 339 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2008 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $31 + local.tee $36 + local.get $37 + local.tee $34 + i32.ne + if + local.get $36 + call $~lib/rt/pure/__retain + drop local.get $34 call $~lib/rt/pure/__release - local.get $40 + end + local.get $36 + local.set $37 + local.get $37 + i32.const 2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.tee $36 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 2048 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $27 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 342 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 2080 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $29 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 343 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2104 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $28 + local.tee $6 + local.get $37 + local.tee $34 + i32.ne + if + local.get $6 + call $~lib/rt/pure/__retain + drop + local.get $34 call $~lib/rt/pure/__release - local.get $41 + end + local.get $6 + local.set $37 + local.get $37 + i32.const 2 + i32.const 2 + call $~lib/array/Array#splice + local.tee $6 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 2144 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $24 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 346 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 2168 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $26 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 347 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2200 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $25 + local.tee $3 + local.get $37 + local.tee $34 + i32.ne + if + local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $34 call $~lib/rt/pure/__release - local.get $42 + end + local.get $3 + local.set $37 + local.get $37 + i32.const 0 + i32.const 1 + call $~lib/array/Array#splice + local.tee $3 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2240 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $21 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 350 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 2264 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $23 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 351 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2296 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $22 + local.tee $4 + local.get $37 + local.tee $34 + i32.ne + if + local.get $4 + call $~lib/rt/pure/__retain + drop + local.get $34 call $~lib/rt/pure/__release + end + local.get $4 + local.set $37 + local.get $37 + i32.const -1 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.tee $4 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2336 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $18 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 354 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 2360 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $20 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 355 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2392 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $19 + local.tee $0 + local.get $37 + local.tee $34 + i32.ne + if + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $0 + local.set $37 + local.get $37 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#splice + local.tee $0 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 2432 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $15 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 358 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 2456 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $17 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 359 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2488 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $16 + local.tee $2 + local.get $37 + local.tee $34 + i32.ne + if + local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $2 + local.set $37 + local.get $37 + i32.const -2 + i32.const 1 + call $~lib/array/Array#splice + local.tee $2 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2528 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $12 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 362 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 2552 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $14 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 363 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2584 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $13 + local.tee $1 + local.get $37 + local.tee $34 + i32.ne + if + local.get $1 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $1 + local.set $37 + local.get $37 + i32.const -7 + i32.const 1 + call $~lib/array/Array#splice + local.tee $1 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2624 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 366 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 2648 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $11 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 367 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2680 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $10 + local.tee $7 + local.get $37 + local.tee $34 + i32.ne + if + local.get $7 + call $~lib/rt/pure/__retain + drop + local.get $34 + call $~lib/rt/pure/__release + end + local.get $7 + local.set $37 + local.get $37 + i32.const -2 + i32.const -1 + call $~lib/array/Array#splice + local.tee $7 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 2720 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 370 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2736 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 371 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2776 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $38 + local.tee $34 + local.get $37 + local.tee $39 + i32.ne + if + local.get $34 + call $~lib/rt/pure/__retain + drop local.get $39 call $~lib/rt/pure/__release - local.get $44 - call $~lib/rt/pure/__release - local.get $45 - call $~lib/rt/pure/__release - local.get $46 - call $~lib/rt/pure/__release + end + local.get $34 + local.set $37 + local.get $37 + i32.const 1 + i32.const -2 + call $~lib/array/Array#splice + local.tee $34 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 2816 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $40 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 374 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2832 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 375 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2872 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $42 + local.tee $39 + local.get $37 + local.tee $43 + i32.ne + if + local.get $39 + call $~lib/rt/pure/__retain + drop local.get $43 call $~lib/rt/pure/__release - local.get $48 - call $~lib/rt/pure/__release - local.get $49 - call $~lib/rt/pure/__release - local.get $50 - call $~lib/rt/pure/__release + end + local.get $39 + local.set $37 + local.get $37 + i32.const 4 + i32.const 0 + call $~lib/array/Array#splice + local.tee $39 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 2912 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $44 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 378 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2928 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $45 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 379 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 2968 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $46 + local.tee $43 + local.get $37 + local.tee $47 + i32.ne + if + local.get $43 + call $~lib/rt/pure/__retain + drop local.get $47 call $~lib/rt/pure/__release - local.get $52 - call $~lib/rt/pure/__release - local.get $53 + end + local.get $43 + local.set $37 + local.get $37 + i32.const 7 + i32.const 0 + call $~lib/array/Array#splice + local.tee $43 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3008 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $48 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 382 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $37 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3024 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $49 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 383 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3064 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $50 + local.tee $47 + local.get $37 + local.tee $51 + i32.ne + if + local.get $47 + call $~lib/rt/pure/__retain + drop + local.get $51 call $~lib/rt/pure/__release end - block - global.get $std/array/arr + local.get $47 + local.set $37 + local.get $37 + i32.const 7 + i32.const 5 + call $~lib/array/Array#splice + local.tee $47 + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3104 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $52 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if i32.const 0 - i32.const 0 - call $~lib/array/Array#__set - global.get $std/array/arr - i32.const 1 - i32.const 1 - call $~lib/array/Array#__set - global.get $std/array/arr + i32.const 376 + i32.const 386 i32.const 2 - i32.const 2 - call $~lib/array/Array#__set - global.get $std/array/arr - i32.const 3 - i32.const 3 - call $~lib/array/Array#__set - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 400 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 403 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 406 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 4 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 414 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 415 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 5 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 417 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 6 - call $~lib/array/Array#findIndex - global.set $std/array/i - global.get $std/array/i - i32.const -1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 430 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 431 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop + call $~lib/builtins/abort + unreachable end - block - global.get $std/array/arr - i32.const 7 - call $~lib/array/Array#every - local.set $53 - local.get $53 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 441 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 8 - call $~lib/array/Array#every - local.set $53 - local.get $53 + local.get $37 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3120 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $53 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 444 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 9 - call $~lib/array/Array#every - local.set $53 - local.get $53 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 452 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 453 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 10 - call $~lib/array/Array#every - local.set $53 - local.get $53 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 455 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 11 - call $~lib/array/Array#every - local.set $53 - local.get $53 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 468 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length + i32.const 376 + i32.const 387 i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 469 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop + call $~lib/builtins/abort + unreachable end - block - global.get $std/array/arr - i32.const 12 - call $~lib/array/Array#some - local.set $53 - local.get $53 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 479 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 13 - call $~lib/array/Array#some - local.set $53 - local.get $53 + local.get $33 + call $~lib/rt/pure/__release + local.get $37 + call $~lib/rt/pure/__release + local.get $35 + call $~lib/rt/pure/__release + local.get $30 + call $~lib/rt/pure/__release + local.get $32 + call $~lib/rt/pure/__release + local.get $31 + call $~lib/rt/pure/__release + local.get $36 + call $~lib/rt/pure/__release + local.get $27 + call $~lib/rt/pure/__release + local.get $29 + call $~lib/rt/pure/__release + local.get $28 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $21 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $18 + call $~lib/rt/pure/__release + local.get $20 + call $~lib/rt/pure/__release + local.get $19 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $16 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $38 + call $~lib/rt/pure/__release + local.get $34 + call $~lib/rt/pure/__release + local.get $40 + call $~lib/rt/pure/__release + local.get $41 + call $~lib/rt/pure/__release + local.get $42 + call $~lib/rt/pure/__release + local.get $39 + call $~lib/rt/pure/__release + local.get $44 + call $~lib/rt/pure/__release + local.get $45 + call $~lib/rt/pure/__release + local.get $46 + call $~lib/rt/pure/__release + local.get $43 + call $~lib/rt/pure/__release + local.get $48 + call $~lib/rt/pure/__release + local.get $49 + call $~lib/rt/pure/__release + local.get $50 + call $~lib/rt/pure/__release + local.get $47 + call $~lib/rt/pure/__release + local.get $52 + call $~lib/rt/pure/__release + local.get $53 + call $~lib/rt/pure/__release + global.get $std/array/arr + i32.const 0 + i32.const 0 + call $~lib/array/Array#__set + global.get $std/array/arr + i32.const 1 + i32.const 1 + call $~lib/array/Array#__set + global.get $std/array/arr + i32.const 2 + i32.const 2 + call $~lib/array/Array#__set + global.get $std/array/arr + i32.const 3 + i32.const 3 + call $~lib/array/Array#__set + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 482 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 14 - call $~lib/array/Array#some - local.set $53 - local.get $53 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 490 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 491 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 15 - call $~lib/array/Array#some - local.set $53 - local.get $53 - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 493 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 16 - call $~lib/array/Array#some - local.set $53 - local.get $53 - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 506 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length + i32.const 376 + i32.const 400 i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 507 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop + call $~lib/builtins/abort + unreachable end - block + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 17 - call $~lib/array/Array#forEach - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 518 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + i32.const 376 + i32.const 403 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 18 - call $~lib/array/Array#forEach - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 527 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 528 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 19 - call $~lib/array/Array#forEach - global.get $std/array/i + i32.const 376 i32.const 406 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 531 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 4 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 20 - call $~lib/array/Array#forEach - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 545 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length + i32.const 376 + i32.const 414 i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 546 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 415 i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 21 - call $~lib/array/Array#forEach - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 100 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 571 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block $break|0 - i32.const 0 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 5 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 417 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 6 + call $~lib/array/Array#findIndex + global.set $std/array/i + global.get $std/array/i + i32.const -1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 430 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 431 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 7 + call $~lib/array/Array#every + local.set $53 + local.get $53 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 441 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 8 + call $~lib/array/Array#every + local.set $53 + local.get $53 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 444 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 9 + call $~lib/array/Array#every + local.set $53 + local.get $53 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 452 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 453 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 10 + call $~lib/array/Array#every + local.set $53 + local.get $53 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 455 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 11 + call $~lib/array/Array#every + local.set $53 + local.get $53 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 468 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 469 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 12 + call $~lib/array/Array#some + local.set $53 + local.get $53 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 479 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 13 + call $~lib/array/Array#some + local.set $53 + local.get $53 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 482 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 14 + call $~lib/array/Array#some + local.set $53 + local.get $53 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 490 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 491 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 15 + call $~lib/array/Array#some + local.set $53 + local.get $53 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 493 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 16 + call $~lib/array/Array#some + local.set $53 + local.get $53 + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 506 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 507 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 17 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 518 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 18 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 527 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 528 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 19 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 531 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 20 + call $~lib/array/Array#forEach + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 545 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 546 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 21 + call $~lib/array/Array#forEach + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 571 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + block $break|0 + i32.const 0 + local.set $53 + loop $loop|0 + local.get $53 + i32.const 100 + i32.lt_s + i32.eqz + br_if $break|0 + global.get $std/array/arr + call $~lib/array/Array#pop + drop + local.get $53 + i32.const 1 + i32.add local.set $53 - loop $loop|0 - local.get $53 - i32.const 100 - i32.lt_s - i32.eqz - br_if $break|0 - global.get $std/array/arr - call $~lib/array/Array#pop - drop - local.get $53 - i32.const 1 - i32.add - local.set $53 - br $loop|0 - unreachable - end - unreachable + br $loop|0 end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop + unreachable end - block - global.get $std/array/arr - i32.const 22 - call $~lib/array/Array#map - local.set $53 - local.get $53 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 585 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $53 + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 22 + call $~lib/array/Array#map + local.set $53 + local.get $53 + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + i32.eqz + if i32.const 0 - call $~lib/array/Array#__get - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - f32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 586 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 23 - call $~lib/array/Array#map - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 595 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 596 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 24 - call $~lib/array/Array#map - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 406 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 603 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 25 - call $~lib/array/Array#map - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 618 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length + i32.const 376 + i32.const 585 i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 619 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - local.get $53 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable end - block - global.get $std/array/arr - i32.const 26 - call $~lib/array/Array#filter - local.set $53 - local.get $53 - call $~lib/array/Array#get:length - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 629 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + local.get $53 + i32.const 0 + call $~lib/array/Array#__get + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + f32.eq + i32.eqz + if i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 27 - call $~lib/array/Array#filter - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 638 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 639 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 28 - call $~lib/array/Array#filter - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 406 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 646 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - i32.const 0 - global.set $std/array/i - global.get $std/array/arr - i32.const 29 - call $~lib/array/Array#filter - call $~lib/rt/pure/__release - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 661 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length + i32.const 376 + i32.const 586 i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 662 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop - local.get $53 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable end - block - global.get $std/array/arr - i32.const 30 + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 23 + call $~lib/array/Array#map + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if i32.const 0 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 672 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 31 - i32.const 4 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 676 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 32 - i32.const 0 - call $~lib/array/Array#reduce - local.set $53 - local.get $53 - i32.const 0 - i32.ne - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 679 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 33 - i32.const 0 - call $~lib/array/Array#reduce - local.set $53 - local.get $53 - i32.const 0 - i32.ne - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 682 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 34 - i32.const 0 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 690 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 691 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 35 - i32.const 0 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 693 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 36 - i32.const 0 - call $~lib/array/Array#reduce - global.set $std/array/i - global.get $std/array/i - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 706 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length + i32.const 376 + i32.const 595 i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 707 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop + call $~lib/builtins/abort + unreachable end - block - global.get $std/array/arr - i32.const 37 + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 717 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 38 - i32.const 4 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 721 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 39 - i32.const 0 - call $~lib/array/Array#reduceRight - local.set $53 - local.get $53 - i32.const 0 - i32.ne - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 724 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 40 - i32.const 0 - call $~lib/array/Array#reduceRight - local.set $53 - local.get $53 - i32.const 0 - i32.ne - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 727 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 41 - i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 735 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 736 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 42 - i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 10 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 738 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - call $~lib/array/Array#pop - drop - global.get $std/array/arr - i32.const 43 - i32.const 0 - call $~lib/array/Array#reduceRight - global.set $std/array/i - global.get $std/array/i - i32.const 6 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 751 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - call $~lib/array/Array#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 752 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - global.get $std/array/arr - i32.const 0 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 1 - call $~lib/array/Array#push - drop - global.get $std/array/arr + i32.const 376 + i32.const 596 i32.const 2 - call $~lib/array/Array#push - drop - global.get $std/array/arr - i32.const 3 - call $~lib/array/Array#push - drop + call $~lib/builtins/abort + unreachable end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 24 + call $~lib/array/Array#map + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 603 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 25 + call $~lib/array/Array#map + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 618 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 619 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + local.get $53 + call $~lib/rt/pure/__release + global.get $std/array/arr + i32.const 26 + call $~lib/array/Array#filter + local.set $53 + local.get $53 + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 629 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 27 + call $~lib/array/Array#filter + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 638 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 639 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 28 + call $~lib/array/Array#filter + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 406 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 646 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + i32.const 0 + global.set $std/array/i + global.get $std/array/arr + i32.const 29 + call $~lib/array/Array#filter + call $~lib/rt/pure/__release + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 661 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 662 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + local.get $53 + call $~lib/rt/pure/__release + global.get $std/array/arr + i32.const 30 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 672 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 31 + i32.const 4 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 676 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 32 + i32.const 0 + call $~lib/array/Array#reduce + local.set $53 + local.get $53 + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 679 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 33 + i32.const 0 + call $~lib/array/Array#reduce + local.set $53 + local.get $53 + i32.const 0 + i32.ne + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 682 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 34 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 690 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 691 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 35 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 693 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 36 + i32.const 0 + call $~lib/array/Array#reduce + global.set $std/array/i + global.get $std/array/i + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 706 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 707 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 37 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 717 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 38 + i32.const 4 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 721 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 39 + i32.const 0 + call $~lib/array/Array#reduceRight + local.set $53 + local.get $53 + i32.const 0 + i32.ne + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 724 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 40 + i32.const 0 + call $~lib/array/Array#reduceRight + local.set $53 + local.get $53 + i32.const 0 + i32.ne + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 727 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 41 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 735 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 736 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 42 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 738 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + call $~lib/array/Array#pop + drop + global.get $std/array/arr + i32.const 43 + i32.const 0 + call $~lib/array/Array#reduceRight + global.set $std/array/i + global.get $std/array/i + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 751 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + call $~lib/array/Array#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 752 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + global.get $std/array/arr + i32.const 0 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 1 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 2 + call $~lib/array/Array#push + drop + global.get $std/array/arr + i32.const 3 + call $~lib/array/Array#push + drop call $~lib/bindings/Math/random i64.reinterpret_f64 call $~lib/math/NativeMath.seedRandom - block - i32.const 8 + i32.const 8 + i32.const 2 + i32.const 8 + i32.const 3392 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $52 + call $~lib/rt/pure/__retain + local.set $53 + i32.const 0 + global.set $~lib/argc + local.get $53 + i32.const 0 + call $~lib/array/Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $53 + i32.const 8 + i32.const 2 + i32.const 8 + i32.const 3440 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $50 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 841 i32.const 2 - i32.const 8 - i32.const 3392 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $52 - call $~lib/rt/pure/__retain - local.set $53 - i32.const 0 - global.set $~lib/argc - local.get $53 - i32.const 0 - call $~lib/array/Array#sort|trampoline - call $~lib/rt/pure/__release - local.get $53 - i32.const 8 - i32.const 2 - i32.const 8 - i32.const 3440 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $50 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 841 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 8 - i32.const 3 - i32.const 9 - i32.const 3488 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $49 - call $~lib/rt/pure/__retain - local.set $47 - i32.const 0 - global.set $~lib/argc - local.get $47 - i32.const 0 - call $~lib/array/Array#sort|trampoline - call $~lib/rt/pure/__release - local.get $47 - i32.const 8 - i32.const 3 - i32.const 9 - i32.const 3568 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $43 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 845 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3648 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $46 - call $~lib/rt/pure/__retain - local.set $48 - i32.const 0 - global.set $~lib/argc - local.get $48 - i32.const 0 - call $~lib/array/Array#sort|trampoline - call $~lib/rt/pure/__release - local.get $48 - i32.const 5 - i32.const 2 - i32.const 3 - i32.const 3688 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $44 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 849 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 3728 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $39 - call $~lib/rt/pure/__retain - local.set $45 - i32.const 0 - global.set $~lib/argc - local.get $45 - i32.const 0 - call $~lib/array/Array#sort|trampoline - call $~lib/rt/pure/__release - local.get $45 - i32.const 5 - i32.const 2 - i32.const 7 - i32.const 3768 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $41 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 853 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 3808 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $40 - call $~lib/rt/pure/__retain - local.set $42 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 3824 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $38 - call $~lib/rt/pure/__retain - local.set $34 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 3848 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $~lib/rt/pure/__retain - local.set $8 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 3872 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $10 - call $~lib/rt/pure/__retain - local.set $7 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 3904 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $~lib/rt/pure/__retain - local.set $11 - i32.const 64 - call $std/array/createReverseOrderedArray - local.set $1 - i32.const 128 - call $std/array/createReverseOrderedArray - local.set $13 - i32.const 1024 - call $std/array/createReverseOrderedArray - local.set $14 - i32.const 10000 - call $std/array/createReverseOrderedArray - local.set $12 - i32.const 512 - call $std/array/createRandomOrderedArray - local.set $2 - local.get $42 - call $std/array/assertSortedDefault - local.get $34 - call $std/array/assertSortedDefault - local.get $34 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 3992 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $17 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 873 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $std/array/assertSortedDefault - local.get $8 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 4016 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $15 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 876 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $std/array/assertSortedDefault - local.get $7 - local.get $11 - i32.const 0 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 879 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $std/array/assertSortedDefault - local.get $1 - local.get $11 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 882 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $13 - call $std/array/assertSortedDefault - local.get $13 - local.get $11 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 885 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $14 - call $std/array/assertSortedDefault - local.get $14 - local.get $11 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 888 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $12 - call $std/array/assertSortedDefault - local.get $12 - local.get $11 - i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 891 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $std/array/assertSortedDefault - local.get $52 - call $~lib/rt/pure/__release - local.get $53 - call $~lib/rt/pure/__release - local.get $50 - call $~lib/rt/pure/__release - local.get $49 - call $~lib/rt/pure/__release - local.get $47 - call $~lib/rt/pure/__release - local.get $43 - call $~lib/rt/pure/__release - local.get $46 - call $~lib/rt/pure/__release - local.get $48 - call $~lib/rt/pure/__release - local.get $44 - call $~lib/rt/pure/__release - local.get $39 - call $~lib/rt/pure/__release - local.get $45 - call $~lib/rt/pure/__release - local.get $41 - call $~lib/rt/pure/__release - local.get $40 - call $~lib/rt/pure/__release - local.get $42 - call $~lib/rt/pure/__release - local.get $38 - call $~lib/rt/pure/__release - local.get $34 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - local.get $15 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable end - block - i32.const 64 - call $std/array/createRandomOrderedArray - local.set $15 - i32.const 257 - call $std/array/createRandomOrderedArray - local.set $17 - local.get $15 - i32.const 49 - call $std/array/assertSorted - local.get $15 - i32.const 50 - call $std/array/assertSorted - local.get $17 - i32.const 51 - call $std/array/assertSorted - local.get $17 - i32.const 52 - call $std/array/assertSorted - local.get $15 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - end - block - i32.const 2 - call $std/array/createReverseOrderedNestedArray - local.set $17 - local.get $17 - i32.const 53 - call $std/array/assertSorted<~lib/array/Array> - local.get $17 - call $~lib/rt/pure/__release - end - block - i32.const 512 - call $std/array/createReverseOrderedElementsArray - local.set $17 - local.get $17 - i32.const 54 - call $std/array/assertSorted> - local.get $17 - call $~lib/rt/pure/__release - end - block - i32.const 7 - i32.const 2 - i32.const 13 - i32.const 4264 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $15 - call $~lib/rt/pure/__retain - local.set $17 - i32.const 7 - i32.const 2 - i32.const 13 - i32.const 4312 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $12 - call $~lib/rt/pure/__retain - local.set $2 - i32.const 1 - global.set $~lib/argc - local.get $17 + i32.const 8 + i32.const 3 + i32.const 9 + i32.const 3488 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $49 + call $~lib/rt/pure/__retain + local.set $47 + i32.const 0 + global.set $~lib/argc + local.get $47 + i32.const 0 + call $~lib/array/Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $47 + i32.const 8 + i32.const 3 + i32.const 9 + i32.const 3568 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $43 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if i32.const 0 - call $std/array/assertSorted<~lib/string/String | null>|trampoline - local.get $17 - local.get $2 - i32.const 0 - call $std/array/isArraysEqual<~lib/string/String | null> - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 928 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 400 - call $std/array/createRandomStringArray - local.set $14 - i32.const 1 - global.set $~lib/argc - local.get $14 - i32.const 0 - call $std/array/assertSorted<~lib/string/String>|trampoline - local.get $15 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release + i32.const 376 + i32.const 845 + i32.const 2 + call $~lib/builtins/abort + unreachable end - block - i32.const 2 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3648 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $46 + call $~lib/rt/pure/__retain + local.set $48 + i32.const 0 + global.set $~lib/argc + local.get $48 + i32.const 0 + call $~lib/array/Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $48 + i32.const 5 + i32.const 2 + i32.const 3 + i32.const 3688 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $44 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if i32.const 0 - i32.const 15 - i32.const 4432 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $2 - i32.const 4512 - call $~lib/array/Array#join - local.tee $14 - i32.const 4536 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 939 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 3 + i32.const 376 + i32.const 849 i32.const 2 - i32.const 3 - i32.const 4576 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $17 - i32.const 4248 - call $~lib/array/Array#join - local.tee $12 - i32.const 5080 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 940 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 7 - i32.const 5112 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $13 - i32.const 5144 - call $~lib/array/Array#join - local.tee $15 - i32.const 5080 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 941 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 5168 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $11 - i32.const 5192 - call $~lib/array/Array#join - local.tee $1 - i32.const 5216 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 942 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 6 - i32.const 3 - i32.const 9 - i32.const 5280 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - i32.const 5344 - call $~lib/array/Array#join - local.tee $9 - i32.const 6544 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 943 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 2 - i32.const 14 - i32.const 6664 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - i32.const 4248 - call $~lib/array/Array<~lib/string/String>#join - local.tee $10 - i32.const 6640 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 944 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 3 - i32.const 2 - i32.const 19 - i32.const 0 - call $~lib/rt/__allocArray - local.set $5 - local.get $5 - i32.load offset=4 - local.set $34 - local.get $34 - i32.const 0 - call $std/array/Ref#constructor - local.tee $38 - call $~lib/rt/pure/__retain - i32.store - local.get $34 - i32.const 0 - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $34 - i32.const 0 - call $std/array/Ref#constructor - local.tee $42 - call $~lib/rt/pure/__retain - i32.store offset=8 - local.get $5 - end - call $~lib/rt/pure/__retain - local.set $34 - local.get $34 - i32.const 4512 - call $~lib/array/Array#join - local.tee $5 - i32.const 6744 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 946 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $2 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $15 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $38 - call $~lib/rt/pure/__release - local.get $42 - call $~lib/rt/pure/__release - local.get $34 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable end - block + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 3728 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $39 + call $~lib/rt/pure/__retain + local.set $45 + i32.const 0 + global.set $~lib/argc + local.get $45 + i32.const 0 + call $~lib/array/Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $45 + i32.const 5 + i32.const 2 + i32.const 7 + i32.const 3768 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if i32.const 0 + i32.const 376 + i32.const 853 i32.const 2 - i32.const 3 - i32.const 6824 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $34 - call $~lib/rt/pure/__retain - local.set $5 - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 6840 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $38 - call $~lib/rt/pure/__retain - local.set $42 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 6864 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $~lib/rt/pure/__retain - local.set $10 - i32.const 4 - i32.const 2 - i32.const 3 - i32.const 6888 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $~lib/rt/pure/__retain - local.set $9 - local.get $5 - call $~lib/array/Array#toString - local.tee $1 - i32.const 4248 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 956 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $42 - call $~lib/array/Array#toString - local.tee $11 - i32.const 6640 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 957 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $10 - call $~lib/array/Array#toString - local.tee $15 - i32.const 6920 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 958 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/array/Array#toString - local.tee $13 - i32.const 6944 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 959 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 0 - i32.const 20 - i32.const 6976 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $17 - call $~lib/array/Array#toString - local.tee $12 - i32.const 7000 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 961 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 1 - i32.const 21 - i32.const 7032 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $2 - call $~lib/array/Array#toString - local.tee $14 - i32.const 7056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 962 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 3 - i32.const 16 - i32.const 7096 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $41 - call $~lib/array/Array#toString - local.tee $40 - i32.const 7136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 963 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 4 - i32.const 3 - i32.const 22 - i32.const 7200 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $39 - call $~lib/array/Array#toString - local.tee $45 - i32.const 7248 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 964 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 7 - i32.const 2 - i32.const 13 - i32.const 7352 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $48 - call $~lib/rt/pure/__retain - local.set $44 - local.get $44 - call $~lib/array/Array<~lib/string/String | null>#toString - local.tee $46 - i32.const 7400 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 968 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 4 - i32.const 2 - i32.const 14 - i32.const 7496 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $47 - call $~lib/array/Array<~lib/string/String>#toString - local.tee $43 - i32.const 7528 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 969 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 2 - i32.const 2 - i32.const 10 - i32.const 0 - call $~lib/rt/__allocArray - local.set $49 - local.get $49 - i32.load offset=4 - local.set $50 - local.get $50 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 7560 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $52 - call $~lib/rt/pure/__retain - i32.store - local.get $50 - i32.const 2 - i32.const 2 - i32.const 3 - i32.const 7584 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $16 - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $49 - end - call $~lib/rt/pure/__retain - local.set $54 - local.get $54 - call $~lib/array/Array<~lib/array/Array>#toString - local.tee $50 - i32.const 7608 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 972 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 2 - i32.const 2 - i32.const 23 - i32.const 0 - call $~lib/rt/__allocArray - local.set $49 - local.get $49 - i32.load offset=4 - local.set $53 - local.get $53 - i32.const 2 - i32.const 0 - i32.const 6 - i32.const 7640 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $19 - call $~lib/rt/pure/__retain - i32.store - local.get $53 - i32.const 2 - i32.const 0 - i32.const 6 - i32.const 7664 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $20 - call $~lib/rt/pure/__retain - i32.store offset=4 - local.get $49 - end - call $~lib/rt/pure/__retain - local.set $55 - local.get $55 - call $~lib/array/Array<~lib/array/Array>#toString - local.tee $53 - i32.const 7608 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 975 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 1 - i32.const 2 - i32.const 25 - i32.const 0 - call $~lib/rt/__allocArray - local.set $49 - local.get $49 - i32.load offset=4 - local.set $0 - local.get $0 - block (result i32) - i32.const 1 - i32.const 2 - i32.const 24 - i32.const 0 - call $~lib/rt/__allocArray - local.set $18 - local.get $18 - i32.load offset=4 - local.set $4 - local.get $4 - i32.const 1 - i32.const 2 - i32.const 7 - i32.const 7688 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $23 - call $~lib/rt/pure/__retain - i32.store - local.get $18 - end - call $~lib/rt/pure/__retain - i32.store - local.get $49 - end - call $~lib/rt/pure/__retain - local.set $56 - local.get $56 - call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString - local.tee $0 - i32.const 6640 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 376 - i32.const 978 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $34 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $38 - call $~lib/rt/pure/__release - local.get $42 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $10 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $11 - call $~lib/rt/pure/__release - local.get $15 - call $~lib/rt/pure/__release - local.get $13 - call $~lib/rt/pure/__release - local.get $17 - call $~lib/rt/pure/__release - local.get $12 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $14 - call $~lib/rt/pure/__release - local.get $41 - call $~lib/rt/pure/__release - local.get $40 - call $~lib/rt/pure/__release - local.get $39 - call $~lib/rt/pure/__release - local.get $45 - call $~lib/rt/pure/__release - local.get $48 - call $~lib/rt/pure/__release - local.get $44 - call $~lib/rt/pure/__release - local.get $46 - call $~lib/rt/pure/__release - local.get $47 - call $~lib/rt/pure/__release - local.get $43 - call $~lib/rt/pure/__release - local.get $52 - call $~lib/rt/pure/__release - local.get $16 - call $~lib/rt/pure/__release - local.get $50 - call $~lib/rt/pure/__release - local.get $19 - call $~lib/rt/pure/__release - local.get $20 - call $~lib/rt/pure/__release - local.get $53 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable end + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 3808 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $40 + call $~lib/rt/pure/__retain + local.set $42 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 3824 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $38 + call $~lib/rt/pure/__retain + local.set $34 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 3848 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $~lib/rt/pure/__retain + local.set $8 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 3872 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $10 + call $~lib/rt/pure/__retain + local.set $7 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 3904 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $~lib/rt/pure/__retain + local.set $11 + i32.const 64 + call $std/array/createReverseOrderedArray + local.set $1 + i32.const 128 + call $std/array/createReverseOrderedArray + local.set $13 + i32.const 1024 + call $std/array/createReverseOrderedArray + local.set $14 + i32.const 10000 + call $std/array/createReverseOrderedArray + local.set $12 + i32.const 512 + call $std/array/createRandomOrderedArray + local.set $2 + local.get $42 + call $std/array/assertSortedDefault + local.get $34 + call $std/array/assertSortedDefault + local.get $34 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 3992 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $17 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 873 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $std/array/assertSortedDefault + local.get $8 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 4016 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $15 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 876 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $7 + call $std/array/assertSortedDefault + local.get $7 + local.get $11 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 879 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $std/array/assertSortedDefault + local.get $1 + local.get $11 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 882 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $13 + call $std/array/assertSortedDefault + local.get $13 + local.get $11 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 885 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $14 + call $std/array/assertSortedDefault + local.get $14 + local.get $11 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 888 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $12 + call $std/array/assertSortedDefault + local.get $12 + local.get $11 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 891 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $std/array/assertSortedDefault + local.get $52 + call $~lib/rt/pure/__release + local.get $53 + call $~lib/rt/pure/__release + local.get $50 + call $~lib/rt/pure/__release + local.get $49 + call $~lib/rt/pure/__release + local.get $47 + call $~lib/rt/pure/__release + local.get $43 + call $~lib/rt/pure/__release + local.get $46 + call $~lib/rt/pure/__release + local.get $48 + call $~lib/rt/pure/__release + local.get $44 + call $~lib/rt/pure/__release + local.get $39 + call $~lib/rt/pure/__release + local.get $45 + call $~lib/rt/pure/__release + local.get $41 + call $~lib/rt/pure/__release + local.get $40 + call $~lib/rt/pure/__release + local.get $42 + call $~lib/rt/pure/__release + local.get $38 + call $~lib/rt/pure/__release + local.get $34 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + i32.const 64 + call $std/array/createRandomOrderedArray + local.set $15 + i32.const 257 + call $std/array/createRandomOrderedArray + local.set $17 + local.get $15 + i32.const 49 + call $std/array/assertSorted + local.get $15 + i32.const 50 + call $std/array/assertSorted + local.get $17 + i32.const 51 + call $std/array/assertSorted + local.get $17 + i32.const 52 + call $std/array/assertSorted + local.get $15 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + i32.const 2 + call $std/array/createReverseOrderedNestedArray + local.set $17 + local.get $17 + i32.const 53 + call $std/array/assertSorted<~lib/array/Array> + local.get $17 + call $~lib/rt/pure/__release + i32.const 512 + call $std/array/createReverseOrderedElementsArray + local.set $17 + local.get $17 + i32.const 54 + call $std/array/assertSorted> + local.get $17 + call $~lib/rt/pure/__release + i32.const 7 + i32.const 2 + i32.const 13 + i32.const 4264 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $15 + call $~lib/rt/pure/__retain + local.set $17 + i32.const 7 + i32.const 2 + i32.const 13 + i32.const 4312 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $12 + call $~lib/rt/pure/__retain + local.set $2 + i32.const 1 + global.set $~lib/argc + local.get $17 + i32.const 0 + call $std/array/assertSorted<~lib/string/String | null>|trampoline + local.get $17 + local.get $2 + i32.const 0 + call $std/array/isArraysEqual<~lib/string/String | null> + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 928 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 400 + call $std/array/createRandomStringArray + local.set $14 + i32.const 1 + global.set $~lib/argc + local.get $14 + i32.const 0 + call $std/array/assertSorted<~lib/string/String>|trampoline + local.get $15 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + i32.const 2 + i32.const 0 + i32.const 15 + i32.const 4432 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + i32.const 4512 + call $~lib/array/Array#join + local.tee $14 + i32.const 4536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 939 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 4576 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $17 + i32.const 4248 + call $~lib/array/Array#join + local.tee $12 + i32.const 5080 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 940 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 7 + i32.const 5112 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $13 + i32.const 5144 + call $~lib/array/Array#join + local.tee $15 + i32.const 5080 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 941 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 5168 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $11 + i32.const 5192 + call $~lib/array/Array#join + local.tee $1 + i32.const 5216 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 942 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 6 + i32.const 3 + i32.const 9 + i32.const 5280 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + i32.const 5344 + call $~lib/array/Array#join + local.tee $9 + i32.const 6544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 943 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 14 + i32.const 6664 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + i32.const 4248 + call $~lib/array/Array<~lib/string/String>#join + local.tee $10 + i32.const 6640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 944 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 19 + i32.const 0 + call $~lib/rt/__allocArray + local.set $5 + local.get $5 + i32.load offset=4 + local.set $34 + local.get $34 + i32.const 0 + call $std/array/Ref#constructor + local.tee $38 + call $~lib/rt/pure/__retain + i32.store + local.get $34 + i32.const 0 + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $34 + i32.const 0 + call $std/array/Ref#constructor + local.tee $42 + call $~lib/rt/pure/__retain + i32.store offset=8 + local.get $5 + call $~lib/rt/pure/__retain + local.set $34 + local.get $34 + i32.const 4512 + call $~lib/array/Array#join + local.tee $5 + i32.const 6744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 946 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $2 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $38 + call $~lib/rt/pure/__release + local.get $42 + call $~lib/rt/pure/__release + local.get $34 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 6824 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $34 + call $~lib/rt/pure/__retain + local.set $5 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 6840 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $38 + call $~lib/rt/pure/__retain + local.set $42 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 6864 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $~lib/rt/pure/__retain + local.set $10 + i32.const 4 + i32.const 2 + i32.const 3 + i32.const 6888 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $~lib/rt/pure/__retain + local.set $9 + local.get $5 + call $~lib/array/Array#toString + local.tee $1 + i32.const 4248 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 956 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $42 + call $~lib/array/Array#toString + local.tee $11 + i32.const 6640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 957 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $10 + call $~lib/array/Array#toString + local.tee $15 + i32.const 6920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 958 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/array/Array#toString + local.tee $13 + i32.const 6944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 959 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 0 + i32.const 20 + i32.const 6976 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $17 + call $~lib/array/Array#toString + local.tee $12 + i32.const 7000 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 961 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 1 + i32.const 21 + i32.const 7032 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + call $~lib/array/Array#toString + local.tee $14 + i32.const 7056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 962 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 3 + i32.const 16 + i32.const 7096 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $41 + call $~lib/array/Array#toString + local.tee $40 + i32.const 7136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 963 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 3 + i32.const 22 + i32.const 7200 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $39 + call $~lib/array/Array#toString + local.tee $45 + i32.const 7248 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 964 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 7 + i32.const 2 + i32.const 13 + i32.const 7352 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $48 + call $~lib/rt/pure/__retain + local.set $44 + local.get $44 + call $~lib/array/Array<~lib/string/String | null>#toString + local.tee $46 + i32.const 7400 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 968 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + i32.const 2 + i32.const 14 + i32.const 7496 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $47 + call $~lib/array/Array<~lib/string/String>#toString + local.tee $43 + i32.const 7528 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 969 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 10 + i32.const 0 + call $~lib/rt/__allocArray + local.set $49 + local.get $49 + i32.load offset=4 + local.set $50 + local.get $50 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 7560 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $52 + call $~lib/rt/pure/__retain + i32.store + local.get $50 + i32.const 2 + i32.const 2 + i32.const 3 + i32.const 7584 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $16 + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $49 + call $~lib/rt/pure/__retain + local.set $54 + local.get $54 + call $~lib/array/Array<~lib/array/Array>#toString + local.tee $50 + i32.const 7608 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 972 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + i32.const 23 + i32.const 0 + call $~lib/rt/__allocArray + local.set $49 + local.get $49 + i32.load offset=4 + local.set $53 + local.get $53 + i32.const 2 + i32.const 0 + i32.const 6 + i32.const 7640 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $19 + call $~lib/rt/pure/__retain + i32.store + local.get $53 + i32.const 2 + i32.const 0 + i32.const 6 + i32.const 7664 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $20 + call $~lib/rt/pure/__retain + i32.store offset=4 + local.get $49 + call $~lib/rt/pure/__retain + local.set $55 + local.get $55 + call $~lib/array/Array<~lib/array/Array>#toString + local.tee $53 + i32.const 7608 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 975 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 25 + i32.const 0 + call $~lib/rt/__allocArray + local.set $49 + local.get $49 + i32.load offset=4 + local.set $0 + local.get $0 + i32.const 1 + i32.const 2 + i32.const 24 + i32.const 0 + call $~lib/rt/__allocArray + local.set $18 + local.get $18 + i32.load offset=4 + local.set $4 + local.get $4 + i32.const 1 + i32.const 2 + i32.const 7 + i32.const 7688 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $23 + call $~lib/rt/pure/__retain + i32.store + local.get $18 + call $~lib/rt/pure/__retain + i32.store + local.get $49 + call $~lib/rt/pure/__retain + local.set $56 + local.get $56 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString + local.tee $0 + i32.const 6640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 376 + i32.const 978 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $34 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $38 + call $~lib/rt/pure/__release + local.get $42 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $10 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $11 + call $~lib/rt/pure/__release + local.get $15 + call $~lib/rt/pure/__release + local.get $13 + call $~lib/rt/pure/__release + local.get $17 + call $~lib/rt/pure/__release + local.get $12 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $14 + call $~lib/rt/pure/__release + local.get $41 + call $~lib/rt/pure/__release + local.get $40 + call $~lib/rt/pure/__release + local.get $39 + call $~lib/rt/pure/__release + local.get $45 + call $~lib/rt/pure/__release + local.get $48 + call $~lib/rt/pure/__release + local.get $44 + call $~lib/rt/pure/__release + local.get $46 + call $~lib/rt/pure/__release + local.get $47 + call $~lib/rt/pure/__release + local.get $43 + call $~lib/rt/pure/__release + local.get $52 + call $~lib/rt/pure/__release + local.get $16 + call $~lib/rt/pure/__release + local.get $50 + call $~lib/rt/pure/__release + local.get $19 + call $~lib/rt/pure/__release + local.get $20 + call $~lib/rt/pure/__release + local.get $53 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release global.get $std/array/arr call $~lib/rt/pure/__release local.get $54 @@ -24324,7 +22948,7 @@ local.get $56 call $~lib/rt/pure/__release ) - (func $start (; 302 ;) (type $FUNCSIG$v) + (func $start (; 300 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -24334,22 +22958,22 @@ end call $start:std/array ) - (func $~lib/array/Array#__visit_impl (; 303 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 301 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 304 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 302 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 305 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 303 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 306 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 304 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 307 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 305 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/markGray (; 308 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 306 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -24376,7 +23000,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 309 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 307 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -24393,7 +23017,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 310 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 308 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -24430,7 +23054,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 311 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 309 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -24468,7 +23092,7 @@ call $~lib/rt/tlsf/freeBlock end ) - (func $~lib/rt/pure/__visit (; 312 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 310 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -24512,103 +23136,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 232 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 232 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 232 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 232 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -24622,7 +23226,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 313 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 311 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24657,12 +23261,11 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end ) - (func $~lib/array/Array>#__visit_impl (; 314 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array>#__visit_impl (; 312 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24697,12 +23300,11 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end ) - (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 315 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 313 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24737,12 +23339,11 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 316 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 314 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24777,21 +23378,20 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end ) - (func $~lib/array/Array#__visit_impl (; 317 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 315 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 318 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 316 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 319 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 317 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 320 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 318 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24826,21 +23426,20 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end ) - (func $~lib/array/Array#__visit_impl (; 321 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 319 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 322 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 320 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 323 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 321 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 324 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 322 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24875,12 +23474,11 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 325 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 323 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24915,12 +23513,11 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 326 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 324 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24955,413 +23552,152 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end ) - (func $~lib/rt/__visit_members (; 327 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 325 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$27 - block $switch$1$case$26 - block $switch$1$case$25 - block $switch$1$case$24 - block $switch$1$case$23 - block $switch$1$case$22 - block $switch$1$case$21 - block $switch$1$case$19 - block $switch$1$case$18 - block $switch$1$case$17 - block $switch$1$case$16 - block $switch$1$case$15 - block $switch$1$case$14 - block $switch$1$case$12 - block $switch$1$case$11 - block $switch$1$case$10 - block $switch$1$case$9 - block $switch$1$case$8 - block $switch$1$case$5 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$2 $switch$1$case$4 $switch$1$case$8 $switch$1$case$9 $switch$1$case$10 $switch$1$case$11 $switch$1$case$12 $switch$1$case$2 $switch$1$case$14 $switch$1$case$15 $switch$1$case$16 $switch$1$case$17 $switch$1$case$18 $switch$1$case$19 $switch$1$case$2 $switch$1$case$21 $switch$1$case$22 $switch$1$case$23 $switch$1$case$24 $switch$1$case$25 $switch$1$case$26 $switch$1$case$27 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable - end - block - br $block$4$break - unreachable - end - unreachable - end - block - block + block $switch$1$default + block $switch$1$case$27 + block $switch$1$case$26 + block $switch$1$case$25 + block $switch$1$case$24 + block $switch$1$case$23 + block $switch$1$case$22 + block $switch$1$case$21 + block $switch$1$case$19 + block $switch$1$case$18 + block $switch$1$case$17 + block $switch$1$case$16 + block $switch$1$case$15 + block $switch$1$case$14 + block $switch$1$case$12 + block $switch$1$case$11 + block $switch$1$case$10 + block $switch$1$case$9 + block $switch$1$case$8 + block $switch$1$case$5 + block $switch$1$case$4 + block $switch$1$case$2 local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$2 $switch$1$case$4 $switch$1$case$8 $switch$1$case$9 $switch$1$case$10 $switch$1$case$11 $switch$1$case$12 $switch$1$case$2 $switch$1$case$14 $switch$1$case$15 $switch$1$case$16 $switch$1$case$17 $switch$1$case$18 $switch$1$case$19 $switch$1$case$2 $switch$1$case$21 $switch$1$case$22 $switch$1$case$23 $switch$1$case$24 $switch$1$case$25 $switch$1$case$26 $switch$1$case$27 $switch$1$default end - unreachable - unreachable + return end - unreachable + br $block$4$break end - block - block - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array<~lib/string/String | null>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array<~lib/array/Array>#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array>#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array<~lib/string/String | null>#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array<~lib/string/String>#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array<~lib/array/Array>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array>#__visit_impl + br $block$4$break end - unreachable - end - block - block - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - end - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 + local.get $0 local.get $1 - call $~lib/rt/pure/__visit + call $~lib/array/Array<~lib/array/Array>#__visit_impl + br $block$4$break end - return - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl + br $block$4$break end unreachable - unreachable end - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end + return ) - (func $null (; 328 ;) (type $FUNCSIG$v) + (func $null (; 326 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index ceee71a7..c883da19 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -1875,10 +1875,8 @@ i32.const -1 i32.const 1073741808 call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 local.tee $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 1 @@ -1895,10 +1893,8 @@ i32.const 1 i32.const 3 call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 local.tee $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 2 @@ -1915,10 +1911,8 @@ i32.const 1 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 local.tee $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 6 @@ -2073,7 +2067,6 @@ i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor local.tee $0 - local.set $6 local.get $0 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> i32.eqz @@ -2130,7 +2123,6 @@ call $~lib/rt/pure/__release local.get $5 call $~lib/rt/pure/__release - local.get $6 call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index 2cedbd47..a2158288 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -159,85 +159,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -293,20 +285,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -344,20 +334,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -368,14 +356,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -528,24 +514,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -559,27 +543,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -588,36 +570,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -655,12 +633,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -757,15 +733,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -825,15 +799,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -843,21 +815,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -867,33 +837,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -902,7 +869,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -931,19 +897,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 176 - i32.const 128 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 128 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1040,18 +998,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1084,18 +1040,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1107,29 +1061,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1147,7 +1078,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1268,34 +1218,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1651,7 +1597,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -1724,19 +1669,11 @@ i32.const 1073741808 i32.gt_u if - block - block - i32.const 24 - i32.const 72 - i32.const 56 - i32.const 42 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 72 + i32.const 56 + i32.const 42 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1772,22 +1709,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1795,7 +1728,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1853,7 +1785,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1920,22 +1851,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1967,226 +1894,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -2194,15 +1973,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -2210,15 +1989,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -2226,10 +2005,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2245,65 +2024,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2311,15 +2095,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2327,15 +2111,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2343,10 +2127,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2362,307 +2146,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2670,148 +2494,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2819,76 +2611,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2896,40 +2672,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2937,22 +2705,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -3024,26 +2788,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -3071,7 +2830,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -3081,22 +2839,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -3104,7 +2858,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -3143,7 +2896,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -3167,7 +2919,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -3189,7 +2940,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3317,19 +3067,11 @@ i32.load i32.gt_u if - block - block - i32.const 336 - i32.const 392 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 392 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -3578,209 +3320,137 @@ drop local.get $0 if - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return end end i32.const 0 @@ -3792,110 +3462,86 @@ (func $~lib/arraybuffer/ArrayBuffer.isView (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 if - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return end - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if i32.const 1 return @@ -3910,209 +3556,137 @@ drop local.get $0 if - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop i32.const 1 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 1 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return end end i32.const 0 @@ -4128,209 +3702,137 @@ drop local.get $0 if - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop i32.const 1 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 1 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) + i32.const 1 + local.set $1 local.get $0 - drop - i32.const 0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return end end i32.const 0 @@ -4346,209 +3848,137 @@ drop local.get $0 if - block (result i32) - local.get $0 - drop - i32.const 0 - end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop - i32.const 0 - end - if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable - end - block (result i32) - local.get $0 - drop i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return end + local.get $0 + drop + i32.const 0 if - block - i32.const 1 - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - return - unreachable - end - unreachable + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 0 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return + end + local.get $0 + drop + i32.const 1 + if + i32.const 1 + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + return end end i32.const 0 @@ -4567,19 +3997,11 @@ i32.shr_u i32.gt_u if - block - block - i32.const 24 - i32.const 72 - i32.const 14 - i32.const 56 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 72 + i32.const 14 + i32.const 56 + call $~lib/builtins/abort unreachable end local.get $1 @@ -4589,44 +4011,40 @@ i32.const 0 call $~lib/rt/tlsf/__alloc local.set $3 - block (result i32) - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 local.tee $4 - block (result i32) - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $4 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - drop - local.get $4 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release end + local.get $5 i32.store local.get $0 local.get $3 @@ -4724,61 +4142,49 @@ i32.gt_u i32.or if - block - local.get $1 - call $~lib/rt/pure/__release - block - i32.const 24 - i32.const 456 - i32.const 21 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + local.get $1 + call $~lib/rt/pure/__release + i32.const 24 + i32.const 456 + i32.const 21 + i32.const 6 + call $~lib/builtins/abort unreachable end - block (result i32) - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 15 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 15 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 local.tee $4 - block (result i32) - local.get $1 - local.tee $5 - local.get $4 - i32.load - local.tee $4 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - drop - local.get $4 - call $~lib/rt/pure/__release - end + local.get $1 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release end + local.get $5 i32.store local.get $1 local.get $2 @@ -4879,16 +4285,14 @@ call $~lib/builtins/abort unreachable end - block (result i32) - local.get $0 - i32.const 1 - i32.const 1073741808 - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - end + local.get $0 + i32.const 1 + i32.const 1073741808 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -4903,16 +4307,14 @@ call $~lib/builtins/abort unreachable end - block (result i32) - local.get $0 - i32.const -1 - i32.const 1073741808 - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - end + local.get $0 + i32.const -1 + i32.const 1073741808 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -4927,16 +4329,14 @@ call $~lib/builtins/abort unreachable end - block (result i32) - local.get $0 - i32.const 1 - i32.const 3 - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - end + local.get $0 + i32.const 1 + i32.const 3 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -4951,16 +4351,14 @@ call $~lib/builtins/abort unreachable end - block (result i32) - local.get $0 - i32.const 1 - i32.const -1 - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - end + local.get $0 + i32.const 1 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -4975,16 +4373,14 @@ call $~lib/builtins/abort unreachable end - block (result i32) - local.get $0 - i32.const -3 - i32.const -1 - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - end + local.get $0 + i32.const -3 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -4999,16 +4395,14 @@ call $~lib/builtins/abort unreachable end - block (result i32) - local.get $0 - i32.const -4 - i32.const 42 - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - end + local.get $0 + i32.const -4 + i32.const 42 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -5023,16 +4417,14 @@ call $~lib/builtins/abort unreachable end - block (result i32) - local.get $0 - i32.const 42 - i32.const 1073741808 - call $~lib/arraybuffer/ArrayBuffer#slice - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - end + local.get $0 + i32.const 42 + i32.const 1073741808 + call $~lib/arraybuffer/ArrayBuffer#slice + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 local.set $1 local.get $1 call $~lib/arraybuffer/ArrayBuffer#get:byteLength @@ -5166,18 +4558,16 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 0 - local.get $2 - call $~lib/typedarray/Uint8Array#get:buffer - local.tee $5 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#constructor|trampoline - local.tee $6 - end + i32.const 1 + global.set $~lib/argc + i32.const 0 + local.get $2 + call $~lib/typedarray/Uint8Array#get:buffer + local.tee $5 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#constructor|trampoline + local.tee $6 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> i32.eqz if @@ -5372,103 +4762,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 232 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 232 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 232 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 232 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -5485,80 +4855,36 @@ (func $~lib/rt/__visit_members (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$5 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable - end - block - br $block$4$break - unreachable - end - unreachable - end - block - block + block $switch$1$default + block $switch$1$case$5 + block $switch$1$case$4 + block $switch$1$case$2 local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$default end - unreachable - unreachable + return end - unreachable + br $block$4$break end - block - block - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - end - block - block local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable + local.get $1 + call $~lib/array/Array#__visit_impl + br $block$4$break end unreachable - unreachable end - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end + return ) (func $null (; 51 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index 2a9a83ab..82f363e1 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -166,85 +166,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -300,20 +292,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -351,20 +341,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -375,14 +363,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -535,24 +521,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -566,27 +550,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -595,36 +577,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -662,12 +640,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -764,15 +740,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -832,15 +806,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -850,21 +822,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -874,33 +844,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -909,7 +876,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -938,19 +904,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 176 - i32.const 128 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 128 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1047,18 +1005,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1091,18 +1047,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1114,29 +1068,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1154,7 +1085,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1275,34 +1225,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1498,19 +1444,11 @@ i32.load i32.gt_u if - block - block - i32.const 280 - i32.const 336 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 336 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1538,22 +1476,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1561,7 +1495,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1619,7 +1552,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1686,22 +1618,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1733,226 +1661,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -1960,15 +1740,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -1976,15 +1756,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -1992,10 +1772,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2011,65 +1791,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2077,15 +1862,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2093,15 +1878,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2109,10 +1894,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2128,307 +1913,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2436,148 +2261,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2585,76 +2378,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2662,40 +2439,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2703,22 +2472,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2790,26 +2555,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2837,7 +2597,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2847,22 +2606,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2870,7 +2625,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2909,7 +2663,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2933,7 +2686,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -2955,7 +2707,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3202,19 +2953,11 @@ i32.shr_u i32.gt_u if - block - block - i32.const 24 - i32.const 72 - i32.const 14 - i32.const 56 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 24 + i32.const 72 + i32.const 14 + i32.const 56 + call $~lib/builtins/abort unreachable end local.get $1 @@ -3224,44 +2967,40 @@ i32.const 0 call $~lib/rt/tlsf/__alloc local.set $3 - block (result i32) - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 local.tee $4 - block (result i32) - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $4 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - drop - local.get $4 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release end + local.get $5 i32.store local.get $0 local.get $3 @@ -3293,19 +3032,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 280 - i32.const 376 - i32.const 115 - i32.const 44 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 376 + i32.const 115 + i32.const 44 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3339,61 +3070,49 @@ i32.gt_u i32.or if - block - local.get $1 - call $~lib/rt/pure/__release - block - i32.const 24 - i32.const 432 - i32.const 21 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + local.get $1 + call $~lib/rt/pure/__release + i32.const 24 + i32.const 432 + i32.const 21 + i32.const 6 + call $~lib/builtins/abort unreachable end - block (result i32) - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 4 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 local.tee $4 - block (result i32) - local.get $1 - local.tee $5 - local.get $4 - i32.load - local.tee $4 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - drop - local.get $4 - call $~lib/rt/pure/__release - end + local.get $1 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release end + local.get $5 i32.store local.get $1 local.get $2 @@ -3451,19 +3170,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 44 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 44 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $2 @@ -3534,19 +3245,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 58 - i32.const 7 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 58 + i32.const 7 + call $~lib/builtins/abort unreachable end local.get $2 @@ -3572,19 +3275,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 280 - i32.const 432 - i32.const 69 - i32.const 49 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 69 + i32.const 49 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3622,19 +3317,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 77 - i32.const 7 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 77 + i32.const 7 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3678,19 +3365,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 86 - i32.const 7 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 86 + i32.const 7 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3759,19 +3438,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 180 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 180 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3794,19 +3465,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 280 - i32.const 432 - i32.const 92 - i32.const 49 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 92 + i32.const 49 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3842,19 +3505,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 100 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 100 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3884,19 +3539,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 109 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 109 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3926,19 +3573,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 189 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 189 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -3967,19 +3606,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 118 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 118 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $3 @@ -4013,19 +3644,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 127 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 127 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $3 @@ -4053,19 +3676,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 280 - i32.const 432 - i32.const 133 - i32.const 49 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 133 + i32.const 49 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4087,19 +3702,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 141 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 141 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4127,19 +3734,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 149 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 149 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4167,19 +3766,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 198 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 198 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4201,19 +3792,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 280 - i32.const 432 - i32.const 154 - i32.const 49 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 154 + i32.const 49 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4235,19 +3818,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 162 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 162 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4275,19 +3850,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 170 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 170 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4315,19 +3882,11 @@ i32.gt_s i32.or if - block - block - i32.const 280 - i32.const 432 - i32.const 206 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 432 + i32.const 206 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $0 @@ -6067,23 +5626,19 @@ call $~lib/builtins/abort unreachable end - block (result i32) - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 0 - local.get $0 - call $~lib/typedarray/Uint8Array#get:buffer - local.tee $3 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#constructor|trampoline - end - local.set $4 - local.get $2 - call $~lib/rt/pure/__release - local.get $4 - end + i32.const 1 + global.set $~lib/argc + i32.const 0 + local.get $0 + call $~lib/typedarray/Uint8Array#get:buffer + local.tee $3 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#constructor|trampoline + local.set $4 + local.get $2 + call $~lib/rt/pure/__release + local.get $4 local.set $2 local.get $2 call $~lib/dataview/DataView#get:byteOffset @@ -6286,103 +5841,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 232 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 232 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 232 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 232 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -6398,60 +5933,28 @@ ) (func $~lib/rt/__visit_members (; 70 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable + block $switch$1$default + block $switch$1$case$4 + block $switch$1$case$2 + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$default end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + return end - block - block - unreachable - unreachable - end - unreachable - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit end - unreachable + return end + unreachable ) (func $null (; 71 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/std/date.untouched.wat b/tests/compiler/std/date.untouched.wat index ad6e7da3..6cf87316 100644 --- a/tests/compiler/std/date.untouched.wat +++ b/tests/compiler/std/date.untouched.wat @@ -118,21 +118,19 @@ local.get $0 ) (func $~lib/date/Date#constructor (; 5 ;) (type $FUNCSIG$iij) (param $0 i32) (param $1 i64) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 8 - i32.const 3 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 - i64.const 0 - i64.store - local.get $0 + local.get $0 + i32.eqz + if + i32.const 8 + i32.const 3 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 + i64.const 0 + i64.store + local.get $0 local.get $1 i64.store local.get $0 @@ -155,32 +153,30 @@ (local $4 i32) (local $5 i32) (local $6 i64) - block $~lib/date/Date.UTC|inlined.0 (result i64) - i32.const 1970 - local.set $2 - i32.const 0 - local.set $1 - i32.const 1 - local.set $0 - i32.const 0 - local.set $3 - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - i64.const 0 - local.set $6 - local.get $2 - local.get $1 - local.get $0 - local.get $3 - local.get $4 - local.get $5 - local.get $6 - f64.convert_i64_s - call $~lib/bindings/Date/UTC - i64.trunc_f64_s - end + i32.const 1970 + local.set $2 + i32.const 0 + local.set $1 + i32.const 1 + local.set $0 + i32.const 0 + local.set $3 + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + i64.const 0 + local.set $6 + local.get $2 + local.get $1 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + local.get $6 + f64.convert_i64_s + call $~lib/bindings/Date/UTC + i64.trunc_f64_s i64.const 0 i64.eq i32.eqz @@ -192,32 +188,30 @@ call $~lib/builtins/abort unreachable end - block $~lib/date/Date.UTC|inlined.1 (result i64) - i32.const 1970 - local.set $5 - i32.const 0 - local.set $4 - i32.const 1 - local.set $3 - i32.const 0 - local.set $2 - i32.const 0 - local.set $1 - i32.const 0 - local.set $0 - i64.const 0 - local.set $6 - local.get $5 - local.get $4 - local.get $3 - local.get $2 - local.get $1 - local.get $0 - local.get $6 - f64.convert_i64_s - call $~lib/bindings/Date/UTC - i64.trunc_f64_s - end + i32.const 1970 + local.set $5 + i32.const 0 + local.set $4 + i32.const 1 + local.set $3 + i32.const 0 + local.set $2 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + i64.const 0 + local.set $6 + local.get $5 + local.get $4 + local.get $3 + local.get $2 + local.get $1 + local.get $0 + local.get $6 + f64.convert_i64_s + call $~lib/bindings/Date/UTC + i64.trunc_f64_s i64.const 0 i64.eq i32.eqz @@ -229,32 +223,30 @@ call $~lib/builtins/abort unreachable end - block $~lib/date/Date.UTC|inlined.2 (result i64) - i32.const 2018 - local.set $5 - i32.const 10 - local.set $4 - i32.const 10 - local.set $3 - i32.const 11 - local.set $2 - i32.const 0 - local.set $1 - i32.const 0 - local.set $0 - i64.const 1 - local.set $6 - local.get $5 - local.get $4 - local.get $3 - local.get $2 - local.get $1 - local.get $0 - local.get $6 - f64.convert_i64_s - call $~lib/bindings/Date/UTC - i64.trunc_f64_s - end + i32.const 2018 + local.set $5 + i32.const 10 + local.set $4 + i32.const 10 + local.set $3 + i32.const 11 + local.set $2 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + i64.const 1 + local.set $6 + local.get $5 + local.get $4 + local.get $3 + local.get $2 + local.get $1 + local.get $0 + local.get $6 + f64.convert_i64_s + call $~lib/bindings/Date/UTC + i64.trunc_f64_s global.set $std/date/creationTime global.get $std/date/creationTime i64.const 1541847600001 @@ -268,10 +260,8 @@ call $~lib/builtins/abort unreachable end - block $~lib/date/Date.now|inlined.0 (result i64) - call $~lib/bindings/Date/now - i64.trunc_f64_s - end + call $~lib/bindings/Date/now + i64.trunc_f64_s global.get $std/date/creationTime i64.gt_s i32.eqz diff --git a/tests/compiler/std/hash.optimized.wat b/tests/compiler/std/hash.optimized.wat index d6aad6d4..3e763339 100644 --- a/tests/compiler/std/hash.optimized.wat +++ b/tests/compiler/std/hash.optimized.wat @@ -46,7 +46,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end diff --git a/tests/compiler/std/hash.untouched.wat b/tests/compiler/std/hash.untouched.wat index adf7f799..5a0d62c9 100644 --- a/tests/compiler/std/hash.untouched.wat +++ b/tests/compiler/std/hash.untouched.wat @@ -40,15 +40,13 @@ i32.ne if block $break|0 - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - end + i32.const 0 + local.set $2 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -69,7 +67,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end diff --git a/tests/compiler/std/libm.optimized.wat b/tests/compiler/std/libm.optimized.wat index 19d0b2dd..280b885b 100644 --- a/tests/compiler/std/libm.optimized.wat +++ b/tests/compiler/std/libm.optimized.wat @@ -6,19 +6,15 @@ (type $FUNCSIG$ff (func (param f32) (result f32))) (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$fff (func (param f32 f32) (result f32))) - (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ffi (func (param f32 i32) (result f32))) (type $FUNCSIG$v (func)) (type $FUNCSIG$ji (func (param i32) (result i64))) (import "Math" "cos" (func $~lib/bindings/Math/cos (param f64) (result f64))) (import "Math" "sin" (func $~lib/bindings/Math/sin (param f64) (result f64))) (import "Math" "tan" (func $~lib/bindings/Math/tan (param f64) (result f64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00)\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe") (data (i32.const 56) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00\18\00\00\00\18\00\00\00 \00\00\00\04") - (data (i32.const 88) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 144) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (global $../../lib/libm/assembly/libm/E f64 (f64.const 2.718281828459045)) (global $../../lib/libm/assembly/libm/LN10 f64 (f64.const 2.302585092994046)) (global $../../lib/libm/assembly/libm/LN2 f64 (f64.const 0.6931471805599453)) @@ -121,11 +117,11 @@ (export "libmf.tan" (func $../../lib/libm/assembly/libmf/tan)) (export "libmf.tanh" (func $../../lib/libm/assembly/libmf/tanh)) (export "libmf.trunc" (func $../../lib/libm/assembly/libmf/trunc)) - (func $../../lib/libm/assembly/libm/abs (; 4 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/abs (; 3 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.abs ) - (func $~lib/math/R (; 5 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/R (; 4 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.const 0.16666666666666666 local.get $0 @@ -168,7 +164,7 @@ f64.add f64.div ) - (func $~lib/math/NativeMath.acos (; 6 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 5 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -292,11 +288,11 @@ f64.add f64.mul ) - (func $../../lib/libm/assembly/libm/acos (; 7 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/acos (; 6 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.acos ) - (func $~lib/math/NativeMath.log1p (; 8 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 7 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -495,7 +491,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.log (; 9 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 8 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) (local $3 f64) @@ -666,7 +662,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.acosh (; 10 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 9 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) local.get $0 i64.reinterpret_f64 @@ -720,11 +716,11 @@ f64.const 0.6931471805599453 f64.add ) - (func $../../lib/libm/assembly/libm/acosh (; 11 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/acosh (; 10 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.acosh ) - (func $~lib/math/NativeMath.asin (; 12 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 11 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -862,11 +858,11 @@ end local.get $0 ) - (func $../../lib/libm/assembly/libm/asin (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/asin (; 12 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.asin ) - (func $~lib/math/NativeMath.asinh (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) local.get $0 @@ -936,16 +932,16 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/asinh (; 15 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/asinh (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.asinh ) - (func $~lib/number/isNaN (; 16 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/isNaN (; 15 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $~lib/math/NativeMath.atan (; 17 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 16 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -1170,11 +1166,11 @@ local.get $3 f64.copysign ) - (func $../../lib/libm/assembly/libm/atan (; 18 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/atan (; 17 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.atan ) - (func $~lib/math/NativeMath.atanh (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 18 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 f64) @@ -1231,11 +1227,11 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/atanh (; 20 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/atanh (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.atanh ) - (func $~lib/math/NativeMath.atan2 (; 21 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 20 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1483,12 +1479,12 @@ i32.and select ) - (func $../../lib/libm/assembly/libm/atan2 (; 22 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/atan2 (; 21 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.atan2 ) - (func $~lib/math/NativeMath.cbrt (; 23 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 22 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -1610,22 +1606,22 @@ f64.mul f64.add ) - (func $../../lib/libm/assembly/libm/cbrt (; 24 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cbrt (; 23 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cbrt ) - (func $../../lib/libm/assembly/libm/ceil (; 25 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/ceil (; 24 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.ceil ) - (func $~lib/number/isFinite (; 26 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/isFinite (; 25 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/math/NativeMath.clz32 (; 27 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.clz32 (; 26 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/number/isFinite i32.eqz @@ -1646,15 +1642,15 @@ i32.clz f64.convert_i32_s ) - (func $../../lib/libm/assembly/libm/clz32 (; 28 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/clz32 (; 27 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.clz32 ) - (func $../../lib/libm/assembly/libm/cos (; 29 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cos (; 28 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/bindings/Math/cos ) - (func $~lib/math/NativeMath.expm1 (; 30 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 29 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -1926,7 +1922,7 @@ local.get $4 f64.mul ) - (func $~lib/math/NativeMath.scalbn (; 31 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/NativeMath.scalbn (; 30 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) local.get $1 i32.const 1023 i32.gt_s @@ -2003,7 +1999,7 @@ f64.reinterpret_i64 f64.mul ) - (func $~lib/math/NativeMath.exp (; 32 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 31 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -2155,7 +2151,7 @@ local.get $1 call $~lib/math/NativeMath.scalbn ) - (func $~lib/math/NativeMath.cosh (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 32 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) local.get $0 @@ -2219,28 +2215,28 @@ f64.const 2247116418577894884661631e283 f64.mul ) - (func $../../lib/libm/assembly/libm/cosh (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cosh (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cosh ) - (func $../../lib/libm/assembly/libm/exp (; 35 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/exp (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.exp ) - (func $../../lib/libm/assembly/libm/expm1 (; 36 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/expm1 (; 35 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.expm1 ) - (func $../../lib/libm/assembly/libm/floor (; 37 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/floor (; 36 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.floor ) - (func $../../lib/libm/assembly/libm/fround (; 38 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/fround (; 37 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f32.demote_f64 f64.promote_f32 ) - (func $~lib/math/NativeMath.hypot (; 39 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 38 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 f64) (local $4 i64) @@ -2264,10 +2260,8 @@ i64.lt_u if local.get $4 - local.set $11 local.get $2 local.set $4 - local.get $11 local.set $2 end local.get $4 @@ -2413,12 +2407,12 @@ f64.sqrt f64.mul ) - (func $../../lib/libm/assembly/libm/hypot (; 40 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/hypot (; 39 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.hypot ) - (func $~lib/math/NativeMath.imul (; 41 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 40 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 f64.add @@ -2451,16 +2445,16 @@ i32.mul f64.convert_i32_s ) - (func $../../lib/libm/assembly/libm/imul (; 42 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/imul (; 41 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.imul ) - (func $../../lib/libm/assembly/libm/log (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log (; 42 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log ) - (func $~lib/math/NativeMath.log10 (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -2664,15 +2658,15 @@ local.get $1 f64.add ) - (func $../../lib/libm/assembly/libm/log10 (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log10 (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log10 ) - (func $../../lib/libm/assembly/libm/log1p (; 46 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log1p (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log1p ) - (func $~lib/math/NativeMath.log2 (; 47 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 46 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -2869,21 +2863,21 @@ local.get $1 f64.add ) - (func $../../lib/libm/assembly/libm/log2 (; 48 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log2 (; 47 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log2 ) - (func $../../lib/libm/assembly/libm/max (; 49 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/max (; 48 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 f64.max ) - (func $../../lib/libm/assembly/libm/min (; 50 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/min (; 49 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 f64.min ) - (func $~lib/math/NativeMath.pow (; 51 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 50 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -3795,12 +3789,12 @@ f64.const 1e-300 f64.mul ) - (func $../../lib/libm/assembly/libm/pow (; 52 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/pow (; 51 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.pow ) - (func $../../lib/libm/assembly/libm/round (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/round (; 52 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.const 0.5 f64.add @@ -3808,7 +3802,7 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/sign (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sign (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.abs f64.const 0 @@ -3821,11 +3815,11 @@ end local.get $0 ) - (func $../../lib/libm/assembly/libm/sin (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sin (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/bindings/Math/sin ) - (func $~lib/math/NativeMath.sinh (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -3902,19 +3896,19 @@ f64.mul f64.mul ) - (func $../../lib/libm/assembly/libm/sinh (; 57 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sinh (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.sinh ) - (func $../../lib/libm/assembly/libm/sqrt (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sqrt (; 57 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.sqrt ) - (func $../../lib/libm/assembly/libm/tan (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/tan (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/bindings/Math/tan ) - (func $~lib/math/NativeMath.tanh (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -3993,19 +3987,19 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/tanh (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/tanh (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.tanh ) - (func $../../lib/libm/assembly/libm/trunc (; 62 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/trunc (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 f64.trunc ) - (func $../../lib/libm/assembly/libmf/abs (; 63 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/abs (; 62 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.abs ) - (func $~lib/math/Rf (; 64 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 63 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.const 0.16666586697101593 local.get $0 @@ -4024,7 +4018,7 @@ f32.add f32.div ) - (func $~lib/math/NativeMathf.acos (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 64 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -4140,11 +4134,11 @@ f32.add f32.mul ) - (func $../../lib/libm/assembly/libmf/acos (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/acos (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.acos ) - (func $~lib/math/NativeMathf.log1p (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -4314,7 +4308,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.log (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -4448,7 +4442,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.acosh (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) local.get $0 i32.reinterpret_f32 @@ -4498,11 +4492,11 @@ f32.const 0.6931471824645996 f32.add ) - (func $../../lib/libm/assembly/libmf/acosh (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/acosh (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.acosh ) - (func $~lib/math/NativeMathf.asin (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f64) @@ -4582,11 +4576,11 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/asin (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/asin (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.asin ) - (func $~lib/math/NativeMathf.asinh (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -4651,16 +4645,16 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/asinh (; 74 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/asinh (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.asinh ) - (func $~lib/number/isNaN (; 75 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/isNaN (; 74 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $~lib/math/NativeMathf.atan (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 75 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -4858,11 +4852,11 @@ local.get $4 f32.copysign ) - (func $../../lib/libm/assembly/libmf/atan (; 77 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atan (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.atan ) - (func $~lib/math/NativeMathf.atanh (; 78 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 77 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -4912,11 +4906,11 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/atanh (; 79 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atanh (; 78 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.atanh ) - (func $~lib/math/NativeMathf.atan2 (; 80 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 79 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5140,12 +5134,12 @@ i32.and select ) - (func $../../lib/libm/assembly/libmf/atan2 (; 81 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atan2 (; 80 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.atan2 ) - (func $~lib/math/NativeMathf.cbrt (; 82 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 81 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 f64) (local $3 i32) @@ -5244,22 +5238,22 @@ f64.div f32.demote_f64 ) - (func $../../lib/libm/assembly/libmf/cbrt (; 83 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cbrt (; 82 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cbrt ) - (func $../../lib/libm/assembly/libmf/ceil (; 84 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/ceil (; 83 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.ceil ) - (func $~lib/number/isFinite (; 85 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/isFinite (; 84 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.sub f32.const 0 f32.eq ) - (func $~lib/math/NativeMathf.clz32 (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.clz32 (; 85 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/number/isFinite i32.eqz @@ -5280,25 +5274,11 @@ i32.clz f32.convert_i32_s ) - (func $../../lib/libm/assembly/libmf/clz32 (; 87 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/clz32 (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.clz32 ) - (func $~lib/array/Array#__get (; 88 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) - local.get $0 - i32.const 80 - i32.load - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 104 - i32.const 160 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - end + (func $~lib/array/Array#__unchecked_get (; 87 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) i32.const 76 i32.load local.get $0 @@ -5307,7 +5287,7 @@ i32.add i64.load ) - (func $~lib/math/NativeMathf.cos (; 89 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cos (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -5412,12 +5392,12 @@ i32.const 6 i32.shr_s local.tee $7 - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $9 local.get $7 i32.const 1 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $5 local.get $4 i32.const 63 @@ -5435,7 +5415,7 @@ local.get $7 i32.const 2 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get i64.const 96 local.get $4 i64.extend_i32_s @@ -5579,11 +5559,11 @@ end local.get $0 ) - (func $../../lib/libm/assembly/libmf/cos (; 90 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cos (; 89 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cos ) - (func $~lib/math/NativeMathf.expm1 (; 91 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 90 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -5835,7 +5815,7 @@ local.get $4 f32.mul ) - (func $~lib/math/NativeMathf.scalbn (; 92 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/NativeMathf.scalbn (; 91 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) local.get $1 i32.const 127 i32.gt_s @@ -5911,7 +5891,7 @@ f32.reinterpret_i32 f32.mul ) - (func $~lib/math/NativeMathf.exp (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 92 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -6039,7 +6019,7 @@ local.get $1 call $~lib/math/NativeMathf.scalbn ) - (func $~lib/math/NativeMathf.cosh (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) local.get $0 i32.reinterpret_f32 @@ -6098,26 +6078,26 @@ f32.const 1661534994731144841129758e11 f32.mul ) - (func $../../lib/libm/assembly/libmf/cosh (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cosh (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cosh ) - (func $../../lib/libm/assembly/libmf/exp (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/exp (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.exp ) - (func $../../lib/libm/assembly/libmf/expm1 (; 97 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/expm1 (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.expm1 ) - (func $../../lib/libm/assembly/libmf/floor (; 98 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/floor (; 97 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.floor ) - (func $../../lib/libm/assembly/libmf/fround (; 99 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/fround (; 98 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 ) - (func $~lib/math/NativeMathf.hypot (; 100 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 99 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -6135,10 +6115,8 @@ i32.lt_u if local.get $3 - local.set $5 local.get $2 local.set $3 - local.get $5 local.set $2 end local.get $3 @@ -6224,12 +6202,12 @@ f32.sqrt f32.mul ) - (func $../../lib/libm/assembly/libmf/hypot (; 101 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/hypot (; 100 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.hypot ) - (func $../../lib/libm/assembly/libmf/imul (; 102 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/imul (; 101 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) block $~lib/math/NativeMathf.imul|inlined.0 (result f32) f32.const 0 local.get $0 @@ -6267,11 +6245,11 @@ f32.convert_i32_s end ) - (func $../../lib/libm/assembly/libmf/log (; 103 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log (; 102 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log ) - (func $~lib/math/NativeMathf.log10 (; 104 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 103 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -6429,15 +6407,15 @@ f32.mul f32.add ) - (func $../../lib/libm/assembly/libmf/log10 (; 105 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log10 (; 104 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log10 ) - (func $../../lib/libm/assembly/libmf/log1p (; 106 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log1p (; 105 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log1p ) - (func $~lib/math/NativeMathf.log2 (; 107 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 106 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 i32) @@ -6587,21 +6565,21 @@ f32.convert_i32_s f32.add ) - (func $../../lib/libm/assembly/libmf/log2 (; 108 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log2 (; 107 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log2 ) - (func $../../lib/libm/assembly/libmf/max (; 109 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/max (; 108 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 f32.max ) - (func $../../lib/libm/assembly/libmf/min (; 110 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/min (; 109 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 f32.min ) - (func $~lib/math/NativeMathf.pow (; 111 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 110 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) (local $4 i32) @@ -7387,12 +7365,12 @@ f32.const 1.0000000031710769e-30 f32.mul ) - (func $../../lib/libm/assembly/libmf/pow (; 112 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/pow (; 111 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.pow ) - (func $../../lib/libm/assembly/libmf/round (; 113 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/round (; 112 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.const 0.5 f32.add @@ -7400,7 +7378,7 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/sign (; 114 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sign (; 113 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.abs f32.const 0 @@ -7413,7 +7391,7 @@ end local.get $0 ) - (func $~lib/math/NativeMathf.sin (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 114 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -7521,12 +7499,12 @@ i32.const 6 i32.shr_s local.tee $8 - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $10 local.get $8 i32.const 1 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $5 local.get $4 i32.const 63 @@ -7544,7 +7522,7 @@ local.get $8 i32.const 2 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get i64.const 96 local.get $4 i64.extend_i32_s @@ -7686,11 +7664,11 @@ end local.get $0 ) - (func $../../lib/libm/assembly/libmf/sin (; 116 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sin (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.sin ) - (func $~lib/math/NativeMathf.sinh (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 116 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -7762,15 +7740,15 @@ f32.mul f32.mul ) - (func $../../lib/libm/assembly/libmf/sinh (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sinh (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.sinh ) - (func $../../lib/libm/assembly/libmf/sqrt (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sqrt (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.sqrt ) - (func $~lib/math/NativeMathf.tan (; 120 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -7887,12 +7865,12 @@ i32.const 6 i32.shr_s local.tee $8 - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $10 local.get $8 i32.const 1 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $6 local.get $4 i32.const 63 @@ -7910,7 +7888,7 @@ local.get $8 i32.const 2 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get i64.const 96 local.get $4 i64.extend_i32_s @@ -7977,7 +7955,6 @@ local.get $9 select end - local.set $2 global.get $~lib/math/rempio2f_y local.tee $3 local.get $3 @@ -8017,7 +7994,6 @@ f64.mul f64.add local.set $1 - local.get $2 i32.const 1 i32.and if @@ -8029,11 +8005,11 @@ local.get $1 f32.demote_f64 ) - (func $../../lib/libm/assembly/libmf/tan (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/tan (; 120 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.tan ) - (func $~lib/math/NativeMathf.tanh (; 122 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -8107,15 +8083,15 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/tanh (; 123 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/tanh (; 122 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.tanh ) - (func $../../lib/libm/assembly/libmf/trunc (; 124 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/trunc (; 123 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 f32.trunc ) - (func $null (; 125 ;) (type $FUNCSIG$v) + (func $null (; 124 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/libm.untouched.wat b/tests/compiler/std/libm.untouched.wat index eb5cc49e..d09a870c 100644 --- a/tests/compiler/std/libm.untouched.wat +++ b/tests/compiler/std/libm.untouched.wat @@ -7,18 +7,14 @@ (type $FUNCSIG$if (func (param f32) (result i32))) (type $FUNCSIG$fff (func (param f32 f32) (result f32))) (type $FUNCSIG$jii (func (param i32 i32) (result i64))) - (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$ffi (func (param f32 i32) (result f32))) (type $FUNCSIG$v (func)) (import "Math" "cos" (func $~lib/bindings/Math/cos (param f64) (result f64))) (import "Math" "sin" (func $~lib/bindings/Math/sin (param f64) (result f64))) (import "Math" "tan" (func $~lib/bindings/Math/tan (param f64) (result f64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00)\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe") (data (i32.const 56) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00\18\00\00\00\18\00\00\00 \00\00\00\04\00\00\00") - (data (i32.const 88) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 144) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/math/NativeMath.E f64 (f64.const 2.718281828459045)) @@ -141,14 +137,14 @@ (export "libmf.tan" (func $../../lib/libm/assembly/libmf/tan)) (export "libmf.tanh" (func $../../lib/libm/assembly/libmf/tanh)) (export "libmf.trunc" (func $../../lib/libm/assembly/libmf/trunc)) - (func $../../lib/libm/assembly/libm/abs (; 4 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/abs (; 3 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 local.get $1 f64.abs ) - (func $~lib/math/R (; 5 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/R (; 4 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) local.get $0 @@ -197,7 +193,7 @@ local.get $2 f64.div ) - (func $~lib/math/NativeMath.acos (; 6 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 5 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -349,11 +345,11 @@ f64.add f64.mul ) - (func $../../lib/libm/assembly/libm/acos (; 7 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/acos (; 6 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.acos ) - (func $~lib/math/NativeMath.log1p (; 8 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 7 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -595,7 +591,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.log (; 9 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 8 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -805,7 +801,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.acosh (; 10 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 9 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) local.get $0 i64.reinterpret_f64 @@ -865,11 +861,11 @@ f64.const 0.6931471805599453 f64.add ) - (func $../../lib/libm/assembly/libm/acosh (; 11 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/acosh (; 10 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.acosh ) - (func $~lib/math/NativeMath.asin (; 12 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 11 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1028,11 +1024,11 @@ end local.get $0 ) - (func $../../lib/libm/assembly/libm/asin (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/asin (; 12 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.asin ) - (func $~lib/math/NativeMath.asinh (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 13 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 f64) @@ -1108,16 +1104,16 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/asinh (; 15 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/asinh (; 14 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.asinh ) - (func $~lib/number/isNaN (; 16 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/isNaN (; 15 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $~lib/math/NativeMath.atan (; 17 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 16 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 f64) @@ -1328,61 +1324,45 @@ br_if $case3|0 br $case4|0 end - block - f64.const 0.4636476090008061 - local.get $8 - f64.const 2.2698777452961687e-17 - f64.sub - local.get $0 - f64.sub - f64.sub - local.set $3 - br $break|0 - unreachable - end - unreachable - end - block - f64.const 0.7853981633974483 + f64.const 0.4636476090008061 local.get $8 - f64.const 3.061616997868383e-17 + f64.const 2.2698777452961687e-17 f64.sub local.get $0 f64.sub f64.sub local.set $3 br $break|0 - unreachable end - unreachable - end - block - f64.const 0.982793723247329 + f64.const 0.7853981633974483 local.get $8 - f64.const 1.3903311031230998e-17 + f64.const 3.061616997868383e-17 f64.sub local.get $0 f64.sub f64.sub local.set $3 br $break|0 - unreachable end - unreachable - end - block - f64.const 1.5707963267948966 + f64.const 0.982793723247329 local.get $8 - f64.const 6.123233995736766e-17 + f64.const 1.3903311031230998e-17 f64.sub local.get $0 f64.sub f64.sub local.set $3 br $break|0 - unreachable end - unreachable + f64.const 1.5707963267948966 + local.get $8 + f64.const 6.123233995736766e-17 + f64.sub + local.get $0 + f64.sub + f64.sub + local.set $3 + br $break|0 end unreachable end @@ -1390,11 +1370,11 @@ local.get $2 f64.copysign ) - (func $../../lib/libm/assembly/libm/atan (; 18 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/atan (; 17 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.atan ) - (func $~lib/math/NativeMath.atanh (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 18 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) @@ -1462,11 +1442,11 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/atanh (; 20 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/atanh (; 19 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.atanh ) - (func $~lib/math/NativeMath.atan2 (; 21 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 20 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -1804,14 +1784,13 @@ return end unreachable - f64.const 0 ) - (func $../../lib/libm/assembly/libm/atan2 (; 22 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/atan2 (; 21 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.atan2 ) - (func $~lib/math/NativeMath.cbrt (; 23 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 22 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -1955,25 +1934,25 @@ local.set $3 local.get $3 ) - (func $../../lib/libm/assembly/libm/cbrt (; 24 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cbrt (; 23 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cbrt ) - (func $../../lib/libm/assembly/libm/ceil (; 25 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/ceil (; 24 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 local.get $1 f64.ceil ) - (func $~lib/number/isFinite (; 26 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/isFinite (; 25 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/math/NativeMath.clz32 (; 27 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.clz32 (; 26 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/number/isFinite i32.eqz @@ -1996,19 +1975,19 @@ i32.clz f64.convert_i32_s ) - (func $../../lib/libm/assembly/libm/clz32 (; 28 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/clz32 (; 27 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.clz32 ) - (func $~lib/math/NativeMath.cos (; 29 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cos (; 28 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/bindings/Math/cos ) - (func $../../lib/libm/assembly/libm/cos (; 30 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cos (; 29 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cos ) - (func $~lib/math/NativeMath.expm1 (; 31 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 30 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -2320,7 +2299,7 @@ local.get $14 f64.mul ) - (func $~lib/math/NativeMath.scalbn (; 32 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/NativeMath.scalbn (; 31 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (local $3 i32) (local $4 i32) @@ -2411,7 +2390,7 @@ f64.reinterpret_i64 f64.mul ) - (func $~lib/math/NativeMath.exp (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 32 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) @@ -2576,7 +2555,7 @@ local.get $5 call $~lib/math/NativeMath.scalbn ) - (func $~lib/math/NativeMath.cosh (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 33 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -2640,53 +2619,51 @@ f64.mul return end - block $~lib/math/expo2|inlined.0 (result f64) - local.get $0 - local.set $4 - i32.const 1023 - i32.const 2043 - i32.const 2 - i32.div_u - i32.add - i32.const 20 - i32.shl - i64.extend_i32_u - i64.const 32 - i64.shl - f64.reinterpret_i64 - local.set $5 - local.get $4 - f64.const 1416.0996898839683 - f64.sub - call $~lib/math/NativeMath.exp - local.get $5 - f64.mul - local.get $5 - f64.mul - end + local.get $0 + local.set $4 + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_i32_u + i64.const 32 + i64.shl + f64.reinterpret_i64 + local.set $5 + local.get $4 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + local.get $5 + f64.mul + local.get $5 + f64.mul local.set $3 local.get $3 ) - (func $../../lib/libm/assembly/libm/cosh (; 35 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/cosh (; 34 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.cosh ) - (func $../../lib/libm/assembly/libm/exp (; 36 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/exp (; 35 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.exp ) - (func $../../lib/libm/assembly/libm/expm1 (; 37 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/expm1 (; 36 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.expm1 ) - (func $../../lib/libm/assembly/libm/floor (; 38 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/floor (; 37 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 local.get $1 f64.floor ) - (func $../../lib/libm/assembly/libm/fround (; 39 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/fround (; 38 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 @@ -2694,7 +2671,7 @@ f32.demote_f64 f64.promote_f32 ) - (func $~lib/math/NativeMath.hypot (; 40 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 39 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -2889,12 +2866,12 @@ f64.sqrt f64.mul ) - (func $../../lib/libm/assembly/libm/hypot (; 41 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/hypot (; 40 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.hypot ) - (func $~lib/math/NativeMath.imul (; 42 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 41 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 f64.add @@ -2927,16 +2904,16 @@ i32.mul f64.convert_i32_s ) - (func $../../lib/libm/assembly/libm/imul (; 43 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/imul (; 42 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.imul ) - (func $../../lib/libm/assembly/libm/log (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log (; 43 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log ) - (func $~lib/math/NativeMath.log10 (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 44 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -3196,15 +3173,15 @@ local.get $8 f64.add ) - (func $../../lib/libm/assembly/libm/log10 (; 46 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log10 (; 45 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log10 ) - (func $../../lib/libm/assembly/libm/log1p (; 47 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log1p (; 46 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log1p ) - (func $~lib/math/NativeMath.log2 (; 48 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 47 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -3457,11 +3434,11 @@ local.get $14 f64.add ) - (func $../../lib/libm/assembly/libm/log2 (; 49 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/log2 (; 48 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.log2 ) - (func $../../lib/libm/assembly/libm/max (; 50 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/max (; 49 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) local.get $0 @@ -3472,7 +3449,7 @@ local.get $2 f64.max ) - (func $../../lib/libm/assembly/libm/min (; 51 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/min (; 50 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) local.get $0 @@ -3483,7 +3460,7 @@ local.get $2 f64.min ) - (func $~lib/math/NativeMath.pow (; 52 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 51 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -3713,7 +3690,6 @@ unreachable end unreachable - unreachable end local.get $8 i32.const 1072693248 @@ -4564,12 +4540,12 @@ local.get $16 f64.mul ) - (func $../../lib/libm/assembly/libm/pow (; 53 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $../../lib/libm/assembly/libm/pow (; 52 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 call $~lib/math/NativeMath.pow ) - (func $../../lib/libm/assembly/libm/round (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/round (; 53 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 @@ -4580,7 +4556,7 @@ local.get $1 f64.copysign ) - (func $../../lib/libm/assembly/libm/sign (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sign (; 54 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) block $~lib/math/NativeMath.sign|inlined.0 (result f64) local.get $0 @@ -4603,15 +4579,15 @@ br $~lib/math/NativeMath.sign|inlined.0 end ) - (func $~lib/math/NativeMath.sin (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (; 55 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/bindings/Math/sin ) - (func $../../lib/libm/assembly/libm/sin (; 57 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sin (; 56 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.sin ) - (func $~lib/math/NativeMath.sinh (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 57 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -4683,54 +4659,52 @@ f64.const 2 local.get $5 f64.mul - block $~lib/math/expo2|inlined.1 (result f64) - local.get $2 - local.set $6 - i32.const 1023 - i32.const 2043 - i32.const 2 - i32.div_u - i32.add - i32.const 20 - i32.shl - i64.extend_i32_u - i64.const 32 - i64.shl - f64.reinterpret_i64 - local.set $7 - local.get $6 - f64.const 1416.0996898839683 - f64.sub - call $~lib/math/NativeMath.exp - local.get $7 - f64.mul - local.get $7 - f64.mul - end + local.get $2 + local.set $6 + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_i32_u + i64.const 32 + i64.shl + f64.reinterpret_i64 + local.set $7 + local.get $6 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + local.get $7 + f64.mul + local.get $7 + f64.mul f64.mul local.set $4 local.get $4 ) - (func $../../lib/libm/assembly/libm/sinh (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sinh (; 58 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.sinh ) - (func $../../lib/libm/assembly/libm/sqrt (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/sqrt (; 59 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 local.get $1 f64.sqrt ) - (func $~lib/math/NativeMath.tan (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tan (; 60 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/bindings/Math/tan ) - (func $../../lib/libm/assembly/libm/tan (; 62 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/tan (; 61 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.tan ) - (func $~lib/math/NativeMath.tanh (; 63 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 62 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -4822,25 +4796,25 @@ local.get $0 f64.copysign ) - (func $../../lib/libm/assembly/libm/tanh (; 64 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/tanh (; 63 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/math/NativeMath.tanh ) - (func $../../lib/libm/assembly/libm/trunc (; 65 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $../../lib/libm/assembly/libm/trunc (; 64 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 f64) local.get $0 local.set $1 local.get $1 f64.trunc ) - (func $../../lib/libm/assembly/libmf/abs (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/abs (; 65 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.abs ) - (func $~lib/math/Rf (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 66 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) local.get $0 @@ -4865,7 +4839,7 @@ local.get $2 f32.div ) - (func $~lib/math/NativeMathf.acos (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 67 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -5005,11 +4979,11 @@ f32.add f32.mul ) - (func $../../lib/libm/assembly/libmf/acos (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/acos (; 68 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.acos ) - (func $~lib/math/NativeMathf.log1p (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 69 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -5218,7 +5192,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.log (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 70 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -5386,7 +5360,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.acosh (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 71 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -5442,11 +5416,11 @@ f32.const 0.6931471824645996 f32.add ) - (func $../../lib/libm/assembly/libmf/acosh (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/acosh (; 72 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.acosh ) - (func $~lib/math/NativeMathf.asin (; 74 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 73 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -5538,11 +5512,11 @@ local.get $1 f32.copysign ) - (func $../../lib/libm/assembly/libmf/asin (; 75 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/asin (; 74 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.asin ) - (func $~lib/math/NativeMathf.asinh (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 75 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) local.get $0 @@ -5611,16 +5585,16 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/asinh (; 77 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/asinh (; 76 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.asinh ) - (func $~lib/number/isNaN (; 78 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/isNaN (; 77 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.ne ) - (func $~lib/math/NativeMathf.atan (; 79 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 78 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -5803,61 +5777,45 @@ br_if $case3|0 br $case4|0 end - block - f32.const 0.46364760398864746 - local.get $8 - f32.const 5.01215824399992e-09 - f32.sub - local.get $0 - f32.sub - f32.sub - local.set $3 - br $break|0 - unreachable - end - unreachable - end - block - f32.const 0.7853981256484985 + f32.const 0.46364760398864746 local.get $8 - f32.const 3.774894707930798e-08 + f32.const 5.01215824399992e-09 f32.sub local.get $0 f32.sub f32.sub local.set $3 br $break|0 - unreachable end - unreachable - end - block - f32.const 0.9827936887741089 + f32.const 0.7853981256484985 local.get $8 - f32.const 3.447321716976148e-08 + f32.const 3.774894707930798e-08 f32.sub local.get $0 f32.sub f32.sub local.set $3 br $break|0 - unreachable end - unreachable - end - block - f32.const 1.570796251296997 + f32.const 0.9827936887741089 local.get $8 - f32.const 7.549789415861596e-08 + f32.const 3.447321716976148e-08 f32.sub local.get $0 f32.sub f32.sub local.set $3 br $break|0 - unreachable end - unreachable + f32.const 1.570796251296997 + local.get $8 + f32.const 7.549789415861596e-08 + f32.sub + local.get $0 + f32.sub + f32.sub + local.set $3 + br $break|0 end unreachable end @@ -5865,11 +5823,11 @@ local.get $2 f32.copysign ) - (func $../../lib/libm/assembly/libmf/atan (; 80 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atan (; 79 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.atan ) - (func $~lib/math/NativeMathf.atanh (; 81 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 80 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) local.get $0 @@ -5923,11 +5881,11 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/atanh (; 82 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atanh (; 81 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.atanh ) - (func $~lib/math/NativeMathf.atan2 (; 83 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 82 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6238,14 +6196,13 @@ return end unreachable - f32.const 0 ) - (func $../../lib/libm/assembly/libmf/atan2 (; 84 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/atan2 (; 83 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.atan2 ) - (func $~lib/math/NativeMathf.cbrt (; 85 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 84 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -6361,25 +6318,25 @@ local.get $3 f32.demote_f64 ) - (func $../../lib/libm/assembly/libmf/cbrt (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cbrt (; 85 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cbrt ) - (func $../../lib/libm/assembly/libmf/ceil (; 87 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/ceil (; 86 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.ceil ) - (func $~lib/number/isFinite (; 88 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) + (func $~lib/number/isFinite (; 87 ;) (type $FUNCSIG$if) (param $0 f32) (result i32) local.get $0 local.get $0 f32.sub f32.const 0 f32.eq ) - (func $~lib/math/NativeMathf.clz32 (; 89 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.clz32 (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/number/isFinite i32.eqz @@ -6402,11 +6359,11 @@ i32.clz f32.convert_i32_s ) - (func $../../lib/libm/assembly/libmf/clz32 (; 90 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/clz32 (; 89 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.clz32 ) - (func $~lib/array/Array#__unchecked_get (; 91 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 90 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -6415,34 +6372,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__get (; 92 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - block - block - i32.const 104 - i32.const 160 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - ) - (func $~lib/math/NativeMathf.cos (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cos (; 91 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -6491,42 +6421,40 @@ f32.const 1 return end - block $~lib/math/cos_kernf|inlined.0 (result f32) - local.get $0 - f64.promote_f32 - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $4 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const -0.001388676377460993 - local.get $4 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $6 - f32.const 1 - f64.promote_f32 - local.get $4 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $5 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $5 - local.get $4 - f64.mul - local.get $6 - f64.mul - f64.add - f32.demote_f64 - end + local.get $0 + f64.promote_f32 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $4 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $6 + f32.const 1 + f64.promote_f32 + local.get $4 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $4 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 return end local.get $1 @@ -6537,52 +6465,50 @@ i32.const 1075235811 i32.gt_u if - block $~lib/math/cos_kernf|inlined.1 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.sub - end - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $6 - local.get $6 - local.get $6 - f64.mul - local.set $5 - f64.const -0.001388676377460993 - local.get $6 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $4 - f32.const 1 + local.get $2 + if (result f64) + local.get $0 f64.promote_f32 - local.get $6 - f64.const -0.499999997251031 - f64.mul + f64.const 3.141592653589793 f64.add - local.get $5 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $5 - local.get $6 - f64.mul - local.get $4 - f64.mul - f64.add - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub end + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $6 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $4 + f32.const 1 + f64.promote_f32 + local.get $6 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $6 + f64.mul + local.get $4 + f64.mul + f64.add + f32.demote_f64 f32.neg return else @@ -6671,7 +6597,6 @@ return end unreachable - unreachable end local.get $1 i32.const 1088565717 @@ -6681,52 +6606,50 @@ i32.const 1085271519 i32.gt_u if - block $~lib/math/cos_kernf|inlined.2 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.sub - end - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $4 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const -0.001388676377460993 - local.get $4 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $6 - f32.const 1 + local.get $2 + if (result f64) + local.get $0 f64.promote_f32 - local.get $4 - f64.const -0.499999997251031 - f64.mul + f64.const 6.283185307179586 f64.add - local.get $5 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $5 - local.get $4 - f64.mul - local.get $6 - f64.mul - f64.add - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub end + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $4 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $6 + f32.const 1 + f64.promote_f32 + local.get $4 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $4 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 return else local.get $2 @@ -6815,7 +6738,6 @@ return end unreachable - unreachable end local.get $1 i32.const 2139095040 @@ -6858,124 +6780,122 @@ i32.trunc_f64_s br $~lib/math/rempio2f|inlined.0 end - block $~lib/math/pio2_large_quot|inlined.0 (result i32) - local.get $10 - local.set $12 - local.get $9 - local.set $11 - local.get $11 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.set $13 - local.get $13 - i32.const 6 - i32.shr_s - local.set $14 - local.get $13 - i32.const 63 - i32.and - local.set $15 + local.get $10 + local.set $12 + local.get $9 + local.set $11 + local.get $11 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $13 + local.get $13 + i32.const 6 + i32.shr_s + local.set $14 + local.get $13 + i32.const 63 + i32.and + local.set $15 + i32.const 72 + local.get $14 + i32.const 0 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $16 + i32.const 72 + local.get $14 + i32.const 1 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $17 + local.get $15 + i32.const 32 + i32.gt_s + if i32.const 72 local.get $14 - i32.const 0 + i32.const 2 i32.add - call $~lib/array/Array#__get - local.set $16 - i32.const 72 - local.get $14 - i32.const 1 - i32.add - call $~lib/array/Array#__get - local.set $17 - local.get $15 - i32.const 32 - i32.gt_s - if - i32.const 72 - local.get $14 - i32.const 2 - i32.add - call $~lib/array/Array#__get - local.set $19 - local.get $19 - i64.const 96 - local.get $15 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $18 - local.get $18 - local.get $17 - local.get $15 - i32.const 32 - i32.sub - i64.extend_i32_s - i64.shl - i64.or - local.set $18 - else - local.get $17 - i64.const 32 - local.get $15 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $18 - end - local.get $17 - i64.const 64 + call $~lib/array/Array#__unchecked_get + local.set $19 + local.get $19 + i64.const 96 local.get $15 i64.extend_i32_s i64.sub i64.shr_u - local.get $16 + local.set $18 + local.get $18 + local.get $17 local.get $15 + i32.const 32 + i32.sub i64.extend_i32_s i64.shl i64.or - local.set $19 - local.get $11 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.set $20 - local.get $20 - local.get $19 - i64.mul - local.get $20 - local.get $18 - i64.mul + local.set $18 + else + local.get $17 i64.const 32 + local.get $15 + i64.extend_i32_s + i64.sub i64.shr_u - i64.add - local.set $21 - local.get $21 - i64.const 2 - i64.shl - local.set $22 - local.get $21 - i64.const 62 - i64.shr_u - local.get $22 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.set $23 - f64.const 8.515303950216386e-20 - local.get $12 - f64.promote_f32 - f64.copysign - local.get $22 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - local.get $23 + local.set $18 end + local.get $17 + i64.const 64 + local.get $15 + i64.extend_i32_s + i64.sub + i64.shr_u + local.get $16 + local.get $15 + i64.extend_i32_s + i64.shl + i64.or + local.set $19 + local.get $11 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $20 + local.get $20 + local.get $19 + i64.mul + local.get $20 + local.get $18 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $21 + local.get $21 + i64.const 2 + i64.shl + local.set $22 + local.get $21 + i64.const 62 + i64.shr_u + local.get $22 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $23 + f64.const 8.515303950216386e-20 + local.get $12 + f64.promote_f32 + f64.copysign + local.get $22 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $23 local.set $23 i32.const 0 local.get $23 @@ -7075,11 +6995,11 @@ local.get $26 end ) - (func $../../lib/libm/assembly/libmf/cos (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cos (; 92 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cos ) - (func $~lib/math/NativeMathf.expm1 (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -7372,7 +7292,7 @@ local.get $13 f32.mul ) - (func $~lib/math/NativeMathf.scalbn (; 96 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/NativeMathf.scalbn (; 94 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -7462,7 +7382,7 @@ f32.reinterpret_i32 f32.mul ) - (func $~lib/math/NativeMathf.exp (; 97 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -7606,7 +7526,7 @@ local.get $5 call $~lib/math/NativeMathf.scalbn ) - (func $~lib/math/NativeMathf.cosh (; 98 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -7663,54 +7583,52 @@ f32.add return end - block $~lib/math/expo2f|inlined.0 (result f32) - local.get $0 - local.set $2 - i32.const 127 - i32.const 235 - i32.const 1 - i32.shr_u - i32.add - i32.const 23 - i32.shl - f32.reinterpret_i32 - local.set $3 - local.get $2 - f32.const 162.88958740234375 - f32.sub - call $~lib/math/NativeMathf.exp - local.get $3 - f32.mul - local.get $3 - f32.mul - end + local.get $0 + local.set $2 + i32.const 127 + i32.const 235 + i32.const 1 + i32.shr_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $3 + local.get $2 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + local.get $3 + f32.mul + local.get $3 + f32.mul ) - (func $../../lib/libm/assembly/libmf/cosh (; 99 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/cosh (; 97 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.cosh ) - (func $../../lib/libm/assembly/libmf/exp (; 100 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/exp (; 98 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.exp ) - (func $../../lib/libm/assembly/libmf/expm1 (; 101 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/expm1 (; 99 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.expm1 ) - (func $../../lib/libm/assembly/libmf/floor (; 102 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/floor (; 100 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.floor ) - (func $../../lib/libm/assembly/libmf/fround (; 103 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/fround (; 101 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 ) - (func $~lib/math/NativeMathf.hypot (; 104 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 102 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7827,12 +7745,12 @@ f32.sqrt f32.mul ) - (func $../../lib/libm/assembly/libmf/hypot (; 105 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/hypot (; 103 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.hypot ) - (func $../../lib/libm/assembly/libmf/imul (; 106 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/imul (; 104 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) block $~lib/math/NativeMathf.imul|inlined.0 (result f32) @@ -7879,11 +7797,11 @@ f32.convert_i32_s end ) - (func $../../lib/libm/assembly/libmf/log (; 107 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log (; 105 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log ) - (func $~lib/math/NativeMathf.log10 (; 108 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 106 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -8083,15 +8001,15 @@ f32.mul f32.add ) - (func $../../lib/libm/assembly/libmf/log10 (; 109 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log10 (; 107 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log10 ) - (func $../../lib/libm/assembly/libmf/log1p (; 110 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log1p (; 108 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log1p ) - (func $~lib/math/NativeMathf.log2 (; 111 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 109 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -8286,11 +8204,11 @@ local.get $14 f32.add ) - (func $../../lib/libm/assembly/libmf/log2 (; 112 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/log2 (; 110 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.log2 ) - (func $../../lib/libm/assembly/libmf/max (; 113 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/max (; 111 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) local.get $0 @@ -8301,7 +8219,7 @@ local.get $2 f32.max ) - (func $../../lib/libm/assembly/libmf/min (; 114 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/min (; 112 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) local.get $0 @@ -8312,7 +8230,7 @@ local.get $2 f32.min ) - (func $~lib/math/NativeMathf.pow (; 115 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 113 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8471,7 +8389,6 @@ unreachable end unreachable - unreachable end local.get $5 i32.const 1065353216 @@ -9247,12 +9164,12 @@ local.get $11 f32.mul ) - (func $../../lib/libm/assembly/libmf/pow (; 116 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $../../lib/libm/assembly/libmf/pow (; 114 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) local.get $0 local.get $1 call $~lib/math/NativeMathf.pow ) - (func $../../lib/libm/assembly/libmf/round (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/round (; 115 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 @@ -9263,7 +9180,7 @@ local.get $1 f32.copysign ) - (func $../../lib/libm/assembly/libmf/sign (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sign (; 116 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) block $~lib/math/NativeMathf.sign|inlined.0 (result f32) local.get $0 @@ -9286,7 +9203,7 @@ br $~lib/math/NativeMathf.sign|inlined.0 end ) - (func $~lib/math/NativeMathf.sin (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -9335,45 +9252,43 @@ local.get $0 return end - block $~lib/math/sin_kernf|inlined.5 (result f32) - local.get $0 - f64.promote_f32 - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $4 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const -1.9839334836096632e-04 - local.get $4 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $6 - local.get $4 - local.get $3 - f64.mul - local.set $7 - local.get $3 - local.get $7 - f64.const -0.16666666641626524 - local.get $4 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $7 - local.get $5 - f64.mul - local.get $6 - f64.mul - f64.add - f32.demote_f64 - end + local.get $0 + f64.promote_f32 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -1.9839334836096632e-04 + local.get $4 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $6 + local.get $4 + local.get $3 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.const -0.16666666641626524 + local.get $4 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + local.get $5 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 return end local.get $1 @@ -9386,44 +9301,42 @@ if local.get $2 if (result f32) - block $~lib/math/cos_kernf|inlined.4 (result f32) - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $7 - local.get $7 - local.get $7 - f64.mul - local.set $6 - f64.const -0.001388676377460993 - local.get $7 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $5 - f32.const 1 - f64.promote_f32 - local.get $7 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $6 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $6 - local.get $7 - f64.mul - local.get $5 - f64.mul - f64.add - f32.demote_f64 - end + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + f64.const -0.001388676377460993 + local.get $7 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $5 + f32.const 1 + f64.promote_f32 + local.get $7 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $6 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 f32.neg else local.get $0 @@ -9465,56 +9378,54 @@ end return end - block $~lib/math/sin_kernf|inlined.6 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.sub - end - f64.neg - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $7 - local.get $7 - local.get $7 - f64.mul - local.set $6 - f64.const -1.9839334836096632e-04 - local.get $7 - f64.const 2.718311493989822e-06 - f64.mul + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 f64.add - local.set $5 - local.get $7 - local.get $3 - f64.mul - local.set $4 - local.get $3 - local.get $4 - f64.const -0.16666666641626524 - local.get $7 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $4 - local.get $6 - f64.mul - local.get $5 - f64.mul - f64.add - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub end + f64.neg + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + f64.const -1.9839334836096632e-04 + local.get $7 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $5 + local.get $7 + local.get $3 + f64.mul + local.set $4 + local.get $3 + local.get $4 + f64.const -0.16666666641626524 + local.get $7 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $4 + local.get $6 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 return end local.get $1 @@ -9564,97 +9475,93 @@ f64.add f32.demote_f64 else - block $~lib/math/cos_kernf|inlined.7 (result f32) - local.get $0 - f64.promote_f32 - f64.const 4.71238898038469 - f64.sub - local.set $7 - local.get $7 - local.get $7 - f64.mul - local.set $6 - local.get $6 - local.get $6 - f64.mul - local.set $5 - f64.const -0.001388676377460993 - local.get $6 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $4 - f32.const 1 - f64.promote_f32 - local.get $6 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $5 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $5 - local.get $6 - f64.mul - local.get $4 - f64.mul - f64.add - f32.demote_f64 - end + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $6 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $4 + f32.const 1 + f64.promote_f32 + local.get $6 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $6 + f64.mul + local.get $4 + f64.mul + f64.add + f32.demote_f64 f32.neg end return end - block $~lib/math/sin_kernf|inlined.7 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.sub - end - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $4 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const -1.9839334836096632e-04 - local.get $4 - f64.const 2.718311493989822e-06 - f64.mul + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 f64.add - local.set $6 - local.get $4 - local.get $3 - f64.mul - local.set $7 - local.get $3 - local.get $7 - f64.const -0.16666666641626524 - local.get $4 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $7 - local.get $5 - f64.mul - local.get $6 - f64.mul - f64.add - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub end + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -1.9839334836096632e-04 + local.get $4 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $6 + local.get $4 + local.get $3 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.const -0.16666666641626524 + local.get $4 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + local.get $5 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 return end local.get $1 @@ -9698,124 +9605,122 @@ i32.trunc_f64_s br $~lib/math/rempio2f|inlined.1 end - block $~lib/math/pio2_large_quot|inlined.1 (result i32) - local.get $10 - local.set $12 - local.get $9 - local.set $11 - local.get $11 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.set $13 - local.get $13 - i32.const 6 - i32.shr_s - local.set $14 - local.get $13 - i32.const 63 - i32.and - local.set $15 + local.get $10 + local.set $12 + local.get $9 + local.set $11 + local.get $11 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $13 + local.get $13 + i32.const 6 + i32.shr_s + local.set $14 + local.get $13 + i32.const 63 + i32.and + local.set $15 + i32.const 72 + local.get $14 + i32.const 0 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $16 + i32.const 72 + local.get $14 + i32.const 1 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $17 + local.get $15 + i32.const 32 + i32.gt_s + if i32.const 72 local.get $14 - i32.const 0 + i32.const 2 i32.add - call $~lib/array/Array#__get - local.set $16 - i32.const 72 - local.get $14 - i32.const 1 - i32.add - call $~lib/array/Array#__get - local.set $17 - local.get $15 - i32.const 32 - i32.gt_s - if - i32.const 72 - local.get $14 - i32.const 2 - i32.add - call $~lib/array/Array#__get - local.set $19 - local.get $19 - i64.const 96 - local.get $15 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $18 - local.get $18 - local.get $17 - local.get $15 - i32.const 32 - i32.sub - i64.extend_i32_s - i64.shl - i64.or - local.set $18 - else - local.get $17 - i64.const 32 - local.get $15 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $18 - end - local.get $17 - i64.const 64 + call $~lib/array/Array#__unchecked_get + local.set $19 + local.get $19 + i64.const 96 local.get $15 i64.extend_i32_s i64.sub i64.shr_u - local.get $16 + local.set $18 + local.get $18 + local.get $17 local.get $15 + i32.const 32 + i32.sub i64.extend_i32_s i64.shl i64.or - local.set $19 - local.get $11 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.set $20 - local.get $20 - local.get $19 - i64.mul - local.get $20 - local.get $18 - i64.mul + local.set $18 + else + local.get $17 i64.const 32 + local.get $15 + i64.extend_i32_s + i64.sub i64.shr_u - i64.add - local.set $21 - local.get $21 - i64.const 2 - i64.shl - local.set $22 - local.get $21 - i64.const 62 - i64.shr_u - local.get $22 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.set $23 - f64.const 8.515303950216386e-20 - local.get $12 - f64.promote_f32 - f64.copysign - local.get $22 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - local.get $23 + local.set $18 end + local.get $17 + i64.const 64 + local.get $15 + i64.extend_i32_s + i64.sub + i64.shr_u + local.get $16 + local.get $15 + i64.extend_i32_s + i64.shl + i64.or + local.set $19 + local.get $11 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $20 + local.get $20 + local.get $19 + i64.mul + local.get $20 + local.get $18 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $21 + local.get $21 + i64.const 2 + i64.shl + local.set $22 + local.get $21 + i64.const 62 + i64.shr_u + local.get $22 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $23 + f64.const 8.515303950216386e-20 + local.get $12 + f64.promote_f32 + f64.copysign + local.get $22 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $23 local.set $23 i32.const 0 local.get $23 @@ -9913,11 +9818,11 @@ local.get $26 end ) - (func $../../lib/libm/assembly/libmf/sin (; 120 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sin (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.sin ) - (func $~lib/math/NativeMathf.sinh (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 119 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -9983,43 +9888,41 @@ f32.const 2 local.get $4 f32.mul - block $~lib/math/expo2f|inlined.1 (result f32) - local.get $2 - local.set $5 - i32.const 127 - i32.const 235 - i32.const 1 - i32.shr_u - i32.add - i32.const 23 - i32.shl - f32.reinterpret_i32 - local.set $6 - local.get $5 - f32.const 162.88958740234375 - f32.sub - call $~lib/math/NativeMathf.exp - local.get $6 - f32.mul - local.get $6 - f32.mul - end + local.get $2 + local.set $5 + i32.const 127 + i32.const 235 + i32.const 1 + i32.shr_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $6 + local.get $5 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + local.get $6 + f32.mul + local.get $6 + f32.mul f32.mul local.set $3 local.get $3 ) - (func $../../lib/libm/assembly/libmf/sinh (; 122 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sinh (; 120 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.sinh ) - (func $../../lib/libm/assembly/libmf/sqrt (; 123 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/sqrt (; 121 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.sqrt ) - (func $~lib/math/NativeMathf.tan (; 124 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 122 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10069,9 +9972,162 @@ local.get $0 return end - block $~lib/math/tan_kernf|inlined.0 (result f32) - local.get $0 + local.get $0 + f64.promote_f32 + local.set $4 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const 0.002974357433599673 + local.get $5 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $6 + f64.const 0.05338123784456704 + local.get $5 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $7 + local.get $5 + local.get $5 + f64.mul + local.set $8 + local.get $5 + local.get $4 + f64.mul + local.set $9 + f64.const 0.3333313950307914 + local.get $5 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $10 + local.get $4 + local.get $9 + local.get $10 + f64.mul + f64.add + local.get $9 + local.get $8 + f64.mul + local.get $7 + local.get $8 + local.get $6 + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + local.get $3 + if (result f64) + f32.const -1 f64.promote_f32 + local.get $6 + f64.div + else + local.get $6 + end + f32.demote_f64 + return + end + local.get $1 + i32.const 1081824209 + i32.le_u + if + local.get $1 + i32.const 1075235811 + i32.le_u + if + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.sub + end + local.set $4 + i32.const 1 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $10 + f64.const 0.002974357433599673 + local.get $10 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $9 + f64.const 0.05338123784456704 + local.get $10 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $8 + local.get $10 + local.get $10 + f64.mul + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 + f64.const 0.3333313950307914 + local.get $10 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $5 + local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $9 + f64.div + else + local.get $9 + end + f32.demote_f64 + return + else + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub + end local.set $4 i32.const 0 local.set $3 @@ -10131,169 +10187,9 @@ local.get $6 end f32.demote_f64 - end - return - end - local.get $1 - i32.const 1081824209 - i32.le_u - if - local.get $1 - i32.const 1075235811 - i32.le_u - if - block $~lib/math/tan_kernf|inlined.1 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.sub - end - local.set $4 - i32.const 1 - local.set $3 - local.get $4 - local.get $4 - f64.mul - local.set $10 - f64.const 0.002974357433599673 - local.get $10 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $9 - f64.const 0.05338123784456704 - local.get $10 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $8 - local.get $10 - local.get $10 - f64.mul - local.set $7 - local.get $10 - local.get $4 - f64.mul - local.set $6 - f64.const 0.3333313950307914 - local.get $10 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $5 - local.get $4 - local.get $6 - local.get $5 - f64.mul - f64.add - local.get $6 - local.get $7 - f64.mul - local.get $8 - local.get $7 - local.get $9 - f64.mul - f64.add - f64.mul - f64.add - local.set $9 - local.get $3 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $9 - f64.div - else - local.get $9 - end - f32.demote_f64 - end - return - else - block $~lib/math/tan_kernf|inlined.2 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.sub - end - local.set $4 - i32.const 0 - local.set $3 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const 0.002974357433599673 - local.get $5 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $6 - f64.const 0.05338123784456704 - local.get $5 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $7 - local.get $5 - local.get $5 - f64.mul - local.set $8 - local.get $5 - local.get $4 - f64.mul - local.set $9 - f64.const 0.3333313950307914 - local.get $5 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $10 - local.get $4 - local.get $9 - local.get $10 - f64.mul - f64.add - local.get $9 - local.get $8 - f64.mul - local.get $7 - local.get $8 - local.get $6 - f64.mul - f64.add - f64.mul - f64.add - local.set $6 - local.get $3 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $6 - f64.div - else - local.get $6 - end - f32.demote_f64 - end return end unreachable - unreachable end local.get $1 i32.const 1088565717 @@ -10303,158 +10199,153 @@ i32.const 1085271519 i32.le_u if - block $~lib/math/tan_kernf|inlined.3 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 4.71238898038469 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 4.71238898038469 - f64.sub - end - local.set $4 - i32.const 1 - local.set $3 - local.get $4 - local.get $4 - f64.mul - local.set $10 - f64.const 0.002974357433599673 - local.get $10 - f64.const 0.009465647849436732 - f64.mul + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 f64.add - local.set $9 - f64.const 0.05338123784456704 - local.get $10 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $8 - local.get $10 - local.get $10 - f64.mul - local.set $7 - local.get $10 - local.get $4 - f64.mul - local.set $6 - f64.const 0.3333313950307914 - local.get $10 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $5 - local.get $4 - local.get $6 - local.get $5 - f64.mul - f64.add - local.get $6 - local.get $7 - f64.mul - local.get $8 - local.get $7 - local.get $9 - f64.mul - f64.add - f64.mul - f64.add - local.set $9 - local.get $3 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $9 - f64.div - else - local.get $9 - end - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub end + local.set $4 + i32.const 1 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $10 + f64.const 0.002974357433599673 + local.get $10 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $9 + f64.const 0.05338123784456704 + local.get $10 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $8 + local.get $10 + local.get $10 + f64.mul + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 + f64.const 0.3333313950307914 + local.get $10 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $5 + local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $9 + f64.div + else + local.get $9 + end + f32.demote_f64 return else - block $~lib/math/tan_kernf|inlined.4 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.sub - end - local.set $4 - i32.const 0 - local.set $3 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const 0.002974357433599673 - local.get $5 - f64.const 0.009465647849436732 - f64.mul + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 f64.add - local.set $6 - f64.const 0.05338123784456704 - local.get $5 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $7 - local.get $5 - local.get $5 - f64.mul - local.set $8 - local.get $5 - local.get $4 - f64.mul - local.set $9 - f64.const 0.3333313950307914 - local.get $5 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $10 - local.get $4 - local.get $9 - local.get $10 - f64.mul - f64.add - local.get $9 - local.get $8 - f64.mul - local.get $7 - local.get $8 - local.get $6 - f64.mul - f64.add - f64.mul - f64.add - local.set $6 - local.get $3 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $6 - f64.div - else - local.get $6 - end - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub end + local.set $4 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const 0.002974357433599673 + local.get $5 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $6 + f64.const 0.05338123784456704 + local.get $5 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $7 + local.get $5 + local.get $5 + f64.mul + local.set $8 + local.get $5 + local.get $4 + f64.mul + local.set $9 + f64.const 0.3333313950307914 + local.get $5 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $10 + local.get $4 + local.get $9 + local.get $10 + f64.mul + f64.add + local.get $9 + local.get $8 + f64.mul + local.get $7 + local.get $8 + local.get $6 + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $6 + f64.div + else + local.get $6 + end + f32.demote_f64 return end unreachable - unreachable end local.get $1 i32.const 2139095040 @@ -10497,124 +10388,122 @@ i32.trunc_f64_s br $~lib/math/rempio2f|inlined.2 end - block $~lib/math/pio2_large_quot|inlined.2 (result i32) - local.get $12 - local.set $14 - local.get $11 - local.set $13 - local.get $13 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.set $15 - local.get $15 - i32.const 6 - i32.shr_s - local.set $16 - local.get $15 - i32.const 63 - i32.and - local.set $17 + local.get $12 + local.set $14 + local.get $11 + local.set $13 + local.get $13 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $15 + local.get $15 + i32.const 6 + i32.shr_s + local.set $16 + local.get $15 + i32.const 63 + i32.and + local.set $17 + i32.const 72 + local.get $16 + i32.const 0 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $18 + i32.const 72 + local.get $16 + i32.const 1 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $19 + local.get $17 + i32.const 32 + i32.gt_s + if i32.const 72 local.get $16 - i32.const 0 + i32.const 2 i32.add - call $~lib/array/Array#__get - local.set $18 - i32.const 72 - local.get $16 - i32.const 1 - i32.add - call $~lib/array/Array#__get - local.set $19 - local.get $17 - i32.const 32 - i32.gt_s - if - i32.const 72 - local.get $16 - i32.const 2 - i32.add - call $~lib/array/Array#__get - local.set $21 - local.get $21 - i64.const 96 - local.get $17 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $20 - local.get $20 - local.get $19 - local.get $17 - i32.const 32 - i32.sub - i64.extend_i32_s - i64.shl - i64.or - local.set $20 - else - local.get $19 - i64.const 32 - local.get $17 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $20 - end - local.get $19 - i64.const 64 + call $~lib/array/Array#__unchecked_get + local.set $21 + local.get $21 + i64.const 96 local.get $17 i64.extend_i32_s i64.sub i64.shr_u - local.get $18 + local.set $20 + local.get $20 + local.get $19 local.get $17 + i32.const 32 + i32.sub i64.extend_i32_s i64.shl i64.or - local.set $21 - local.get $13 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.set $22 - local.get $22 - local.get $21 - i64.mul - local.get $22 - local.get $20 - i64.mul + local.set $20 + else + local.get $19 i64.const 32 + local.get $17 + i64.extend_i32_s + i64.sub i64.shr_u - i64.add - local.set $23 - local.get $23 - i64.const 2 - i64.shl - local.set $24 - local.get $23 - i64.const 62 - i64.shr_u - local.get $24 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.set $25 - f64.const 8.515303950216386e-20 - local.get $14 - f64.promote_f32 - f64.copysign - local.get $24 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - local.get $25 + local.set $20 end + local.get $19 + i64.const 64 + local.get $17 + i64.extend_i32_s + i64.sub + i64.shr_u + local.get $18 + local.get $17 + i64.extend_i32_s + i64.shl + i64.or + local.set $21 + local.get $13 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $22 + local.get $22 + local.get $21 + i64.mul + local.get $22 + local.get $20 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $23 + i64.const 2 + i64.shl + local.set $24 + local.get $23 + i64.const 62 + i64.shr_u + local.get $24 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $25 + f64.const 8.515303950216386e-20 + local.get $14 + f64.promote_f32 + f64.copysign + local.get $24 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $25 local.set $25 i32.const 0 local.get $25 @@ -10626,76 +10515,74 @@ local.set $26 global.get $~lib/math/rempio2f_y local.set $27 - block $~lib/math/tan_kernf|inlined.5 (result f32) - local.get $27 - local.set $4 - local.get $26 - i32.const 1 - i32.and - local.set $13 - local.get $4 - local.get $4 - f64.mul - local.set $10 - f64.const 0.002974357433599673 - local.get $10 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $9 - f64.const 0.05338123784456704 - local.get $10 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $8 - local.get $10 - local.get $10 - f64.mul - local.set $7 - local.get $10 - local.get $4 - f64.mul - local.set $6 - f64.const 0.3333313950307914 - local.get $10 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $5 - local.get $4 - local.get $6 - local.get $5 - f64.mul - f64.add - local.get $6 - local.get $7 - f64.mul - local.get $8 - local.get $7 + local.get $27 + local.set $4 + local.get $26 + i32.const 1 + i32.and + local.set $13 + local.get $4 + local.get $4 + f64.mul + local.set $10 + f64.const 0.002974357433599673 + local.get $10 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $9 + f64.const 0.05338123784456704 + local.get $10 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $8 + local.get $10 + local.get $10 + f64.mul + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 + f64.const 0.3333313950307914 + local.get $10 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $5 + local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $13 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $9 + f64.div + else local.get $9 - f64.mul - f64.add - f64.mul - f64.add - local.set $9 - local.get $13 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $9 - f64.div - else - local.get $9 - end - f32.demote_f64 end + f32.demote_f64 ) - (func $../../lib/libm/assembly/libmf/tan (; 125 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/tan (; 123 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.tan ) - (func $~lib/math/NativeMathf.tanh (; 126 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 124 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -10781,17 +10668,17 @@ local.get $0 f32.copysign ) - (func $../../lib/libm/assembly/libmf/tanh (; 127 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/tanh (; 125 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) local.get $0 call $~lib/math/NativeMathf.tanh ) - (func $../../lib/libm/assembly/libmf/trunc (; 128 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $../../lib/libm/assembly/libmf/trunc (; 126 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 f32) local.get $0 local.set $1 local.get $1 f32.trunc ) - (func $null (; 129 ;) (type $FUNCSIG$v) + (func $null (; 127 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 5aad7c28..bab4f540 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -1160,14 +1160,12 @@ i32.and local.tee $1 i32.sub - local.set $2 local.get $0 local.get $1 i32.add local.tee $0 i32.const 0 i32.store - local.get $2 i32.const -4 i32.and local.tee $1 diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index 25429761..edb8f666 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -165,85 +165,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -299,20 +291,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -350,20 +340,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -374,14 +362,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -534,24 +520,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -565,27 +549,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -594,36 +576,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -661,12 +639,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -763,15 +739,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -831,15 +805,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -849,21 +821,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -873,33 +843,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -908,7 +875,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -937,19 +903,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 72 - i32.const 24 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 72 + i32.const 24 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1046,18 +1004,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1090,18 +1046,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1113,29 +1067,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1153,7 +1084,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1274,34 +1224,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1718,7 +1664,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -1730,19 +1675,11 @@ i32.const 1073741808 i32.gt_u if - block - block - i32.const 176 - i32.const 224 - i32.const 56 - i32.const 42 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 224 + i32.const 56 + i32.const 42 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1794,19 +1731,11 @@ i32.load i32.gt_u if - block - block - i32.const 280 - i32.const 336 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 336 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1834,22 +1763,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1857,7 +1782,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1915,7 +1839,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1982,22 +1905,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2029,226 +1948,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -2256,15 +2027,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -2272,15 +2043,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -2288,10 +2059,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2307,65 +2078,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2373,15 +2149,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2389,15 +2165,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2405,10 +2181,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2424,307 +2200,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2732,148 +2548,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2881,76 +2665,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2958,40 +2726,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2999,22 +2759,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -3086,26 +2842,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -3133,7 +2884,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -3143,22 +2893,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -3166,7 +2912,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -3205,7 +2950,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -3229,7 +2973,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -3251,7 +2994,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3493,16 +3235,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -3511,16 +3251,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -3533,36 +3271,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 3 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 3 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -3620,7 +3356,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -3675,9 +3410,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 12 - end + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -3687,9 +3420,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 12 - end + i32.const 12 i32.mul i32.add local.set $7 @@ -3745,63 +3476,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -3877,19 +3599,15 @@ call $~lib/rt/pure/__retain local.set $3 local.get $3 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $6 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 12 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + i32.store offset=16 + local.get $6 + i32.const 12 i32.mul i32.add local.set $5 @@ -4107,7 +3825,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -4212,7 +3929,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -4292,7 +4008,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -4375,7 +4090,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -4415,16 +4129,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -4433,16 +4145,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -4455,36 +4165,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 4 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -4533,7 +4241,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -4586,9 +4293,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 12 - end + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -4598,9 +4303,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 12 - end + i32.const 12 i32.mul i32.add local.set $7 @@ -4656,63 +4359,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -4786,19 +4480,15 @@ call $~lib/rt/pure/__retain local.set $3 local.get $3 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $6 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 12 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + i32.store offset=16 + local.get $6 + i32.const 12 i32.mul i32.add local.set $5 @@ -5008,7 +4698,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -5107,7 +4796,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -5185,7 +4873,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -5266,7 +4953,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -5306,16 +4992,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -5324,16 +5008,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -5346,36 +5028,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -5448,7 +5128,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -5503,9 +5182,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 12 - end + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -5515,9 +5192,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 12 - end + i32.const 12 i32.mul i32.add local.set $7 @@ -5573,63 +5248,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -5705,19 +5371,15 @@ call $~lib/rt/pure/__retain local.set $3 local.get $3 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $6 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 12 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + i32.store offset=16 + local.get $6 + i32.const 12 i32.mul i32.add local.set $5 @@ -5935,7 +5597,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -6040,7 +5701,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -6120,7 +5780,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -6203,7 +5862,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -6243,16 +5901,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -6261,16 +5917,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -6283,36 +5937,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 6 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 6 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -6361,7 +6013,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -6414,9 +6065,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 12 - end + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -6426,9 +6075,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 12 - end + i32.const 12 i32.mul i32.add local.set $7 @@ -6484,63 +6131,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -6614,19 +6252,15 @@ call $~lib/rt/pure/__retain local.set $3 local.get $3 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $6 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 12 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + i32.store offset=16 + local.get $6 + i32.const 12 i32.mul i32.add local.set $5 @@ -6836,7 +6470,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -6935,7 +6568,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -7013,7 +6645,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -7094,7 +6725,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -7134,16 +6764,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -7152,16 +6780,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -7174,36 +6800,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 71 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 7 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 7 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -7292,7 +6916,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -7343,9 +6966,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 12 - end + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -7355,9 +6976,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 12 - end + i32.const 12 i32.mul i32.add local.set $7 @@ -7413,63 +7032,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -7541,19 +7151,15 @@ call $~lib/rt/pure/__retain local.set $3 local.get $3 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $6 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 12 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + i32.store offset=16 + local.get $6 + i32.const 12 i32.mul i32.add local.set $5 @@ -7755,7 +7361,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -7848,7 +7453,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -7924,7 +7528,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -8003,7 +7606,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -8043,16 +7645,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -8061,16 +7661,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -8083,36 +7681,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 82 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 8 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 8 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -8159,7 +7755,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -8210,9 +7805,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 12 - end + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -8222,9 +7815,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 12 - end + i32.const 12 i32.mul i32.add local.set $7 @@ -8280,63 +7871,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -8408,19 +7990,15 @@ call $~lib/rt/pure/__retain local.set $3 local.get $3 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $6 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 12 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + i32.store offset=16 + local.get $6 + i32.const 12 i32.mul i32.add local.set $5 @@ -8622,7 +8200,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -8715,7 +8292,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -8791,7 +8367,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -8870,7 +8445,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -8910,16 +8484,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -8928,16 +8500,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -8950,36 +8520,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 92 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 9 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 9 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -9114,7 +8682,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -9166,9 +8733,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 16 - end + i32.const 16 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -9178,9 +8743,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 16 - end + i32.const 16 i32.mul i32.add local.set $7 @@ -9236,63 +8799,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $12 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $12 i32.store offset=8 local.get $0 local.get $4 @@ -9365,19 +8919,15 @@ call $~lib/rt/pure/__retain local.set $6 local.get $6 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $7 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 16 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + i32.store offset=16 + local.get $7 + i32.const 16 i32.mul i32.add local.set $5 @@ -9582,7 +9132,6 @@ i64.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -9678,7 +9227,6 @@ i64.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -9755,7 +9303,6 @@ i64.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -9835,7 +9382,6 @@ i64.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -9875,16 +9421,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -9893,16 +9437,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -9915,36 +9457,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 103 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 10 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 10 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -9991,7 +9531,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -10043,9 +9582,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 16 - end + i32.const 16 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -10055,9 +9592,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 16 - end + i32.const 16 i32.mul i32.add local.set $7 @@ -10113,63 +9648,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $12 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $12 i32.store offset=8 local.get $0 local.get $4 @@ -10242,19 +9768,15 @@ call $~lib/rt/pure/__retain local.set $6 local.get $6 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $7 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 16 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + i32.store offset=16 + local.get $7 + i32.const 16 i32.mul i32.add local.set $5 @@ -10459,7 +9981,6 @@ i64.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -10555,7 +10076,6 @@ i64.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -10632,7 +10152,6 @@ i64.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -10712,7 +10231,6 @@ i64.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -10752,16 +10270,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -10770,16 +10286,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -10792,36 +10306,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 113 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 11 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 11 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -10868,7 +10380,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -10921,9 +10432,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 12 - end + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -10933,9 +10442,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 12 - end + i32.const 12 i32.mul i32.add local.set $7 @@ -10992,63 +10499,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $12 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $12 i32.store offset=8 local.get $0 local.get $4 @@ -11122,19 +10620,15 @@ call $~lib/rt/pure/__retain local.set $6 local.get $6 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $7 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 12 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + i32.store offset=16 + local.get $7 + i32.const 12 i32.mul i32.add local.set $5 @@ -11341,7 +10835,6 @@ f32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -11437,7 +10930,6 @@ f32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -11514,7 +11006,6 @@ f32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -11594,7 +11085,6 @@ f32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -11634,16 +11124,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -11652,16 +11140,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -11674,36 +11160,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 123 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 12 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 12 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -11750,7 +11234,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -11803,9 +11286,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 16 - end + i32.const 16 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -11815,9 +11296,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 16 - end + i32.const 16 i32.mul i32.add local.set $7 @@ -11874,63 +11353,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $12 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $12 i32.store offset=8 local.get $0 local.get $4 @@ -12004,19 +11474,15 @@ call $~lib/rt/pure/__retain local.set $6 local.get $6 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $7 - i32.const 1 - i32.add - i32.store offset=16 - local.get $7 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 16 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $7 + i32.const 1 + i32.add + i32.store offset=16 + local.get $7 + i32.const 16 i32.mul i32.add local.set $5 @@ -12223,7 +11689,6 @@ f64.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -12319,7 +11784,6 @@ f64.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -12396,7 +11860,6 @@ f64.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -12476,7 +11939,6 @@ f64.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -12689,103 +12151,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -12931,240 +12373,88 @@ ) (func $~lib/rt/__visit_members (; 149 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$14 - block $switch$1$case$13 - block $switch$1$case$12 - block $switch$1$case$11 - block $switch$1$case$10 - block $switch$1$case$9 - block $switch$1$case$8 - block $switch$1$case$7 - block $switch$1$case$6 - block $switch$1$case$5 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$7 $switch$1$case$8 $switch$1$case$9 $switch$1$case$10 $switch$1$case$11 $switch$1$case$12 $switch$1$case$13 $switch$1$case$14 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block - local.get $0 - local.get $1 - call $~lib/map/Map#__visit_impl - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block + block $switch$1$default + block $switch$1$case$14 + block $switch$1$case$13 + block $switch$1$case$12 + block $switch$1$case$11 + block $switch$1$case$10 + block $switch$1$case$9 + block $switch$1$case$8 + block $switch$1$case$7 + block $switch$1$case$6 + block $switch$1$case$5 + block $switch$1$case$4 + block $switch$1$case$2 local.get $0 - local.get $1 - call $~lib/map/Map#__visit_impl - return - unreachable + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$7 $switch$1$case$8 $switch$1$case$9 $switch$1$case$10 $switch$1$case$11 $switch$1$case$12 $switch$1$case$13 $switch$1$case$14 $switch$1$default end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block - local.get $0 - local.get $1 - call $~lib/map/Map#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 - local.get $1 - call $~lib/map/Map#__visit_impl + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/map/Map#__visit_impl + call $~lib/map/Map#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/map/Map#__visit_impl + call $~lib/map/Map#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/map/Map#__visit_impl + call $~lib/map/Map#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/map/Map#__visit_impl + call $~lib/map/Map#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/map/Map#__visit_impl + call $~lib/map/Map#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/map/Map#__visit_impl + call $~lib/map/Map#__visit_impl return - unreachable end - unreachable - unreachable + local.get $0 + local.get $1 + call $~lib/map/Map#__visit_impl + return end - unreachable - unreachable + local.get $0 + local.get $1 + call $~lib/map/Map#__visit_impl + return end - unreachable + local.get $0 + local.get $1 + call $~lib/map/Map#__visit_impl + return end - block - block - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + local.get $0 + local.get $1 + call $~lib/map/Map#__visit_impl + return end + unreachable ) (func $null (; 150 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index b6c8df07..24789e80 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -67,10 +67,8 @@ (data (i32.const 8) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s") (data (i32.const 48) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00)\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe") (data (i32.const 96) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00@\00\00\00@\00\00\00 \00\00\00\04") - (data (i32.const 128) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 184) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data (i32.const 232) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") - (data (i32.const 272) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00P\00R\00N\00G\00 \00m\00u\00s\00t\00 \00b\00e\00 \00s\00e\00e\00d\00e\00d\00.") + (data (i32.const 128) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (data (i32.const 168) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00P\00R\00N\00G\00 \00m\00u\00s\00t\00 \00b\00e\00 \00s\00e\00e\00d\00e\00d\00.") (global $~lib/math/rempio2f_y (mut f64) (f64.const 0)) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) @@ -232,7 +230,6 @@ local.get $0 local.get $1 f64.sub - local.set $0 local.get $1 i64.reinterpret_f64 i64.const 52 @@ -248,7 +245,6 @@ i32.add local.set $3 end - local.get $0 i32.const 0 local.get $3 i32.const -1075 @@ -431,7 +427,6 @@ local.get $0 local.get $1 f32.sub - local.set $0 local.get $1 i32.reinterpret_f32 i32.const 23 @@ -446,7 +441,6 @@ i32.add local.set $3 end - local.get $0 i32.const 0 local.get $3 i32.const -150 @@ -3389,21 +3383,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/array/Array#__get (; 83 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) - local.get $0 - i32.const 120 - i32.load - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 144 - i32.const 200 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - end + (func $~lib/array/Array#__unchecked_get (; 83 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) i32.const 116 i32.load local.get $0 @@ -3517,12 +3497,12 @@ i32.const 6 i32.shr_s local.tee $7 - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $9 local.get $7 i32.const 1 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $5 local.get $4 i32.const 63 @@ -3540,7 +3520,7 @@ local.get $7 i32.const 2 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get i64.const 96 local.get $4 i64.extend_i32_s @@ -4734,10 +4714,8 @@ i64.lt_u if local.get $4 - local.set $11 local.get $2 local.set $4 - local.get $11 local.set $2 end local.get $4 @@ -4919,10 +4897,8 @@ i32.lt_u if local.get $3 - local.set $5 local.get $2 local.set $3 - local.get $5 local.set $2 end local.get $3 @@ -8071,7 +8047,7 @@ i64.eqz if i32.const 0 - i32.const 248 + i32.const 144 i32.const 1020 i32.const 4 call $~lib/builtins/abort @@ -8101,8 +8077,8 @@ global.get $~lib/math/random_seeded i32.eqz if - i32.const 288 - i32.const 248 + i32.const 184 + i32.const 144 i32.const 1029 i32.const 24 call $~lib/builtins/abort @@ -8148,8 +8124,8 @@ global.get $~lib/math/random_seeded i32.eqz if - i32.const 288 - i32.const 248 + i32.const 184 + i32.const 144 i32.const 2309 i32.const 24 call $~lib/builtins/abort @@ -8278,7 +8254,6 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.set $8 i32.const 1 local.get $3 i64.const 2047 @@ -8500,7 +8475,6 @@ select select local.set $0 - local.get $8 if local.get $0 f64.neg @@ -8543,7 +8517,6 @@ local.get $2 i32.const 31 i32.shr_u - local.set $8 local.get $3 i32.const 255 i32.eq @@ -8667,23 +8640,21 @@ br $continue|1 end end - block (result i32) + local.get $2 + local.get $6 + i32.ge_u + if + local.get $4 + i32.const 1 + i32.add + local.set $4 local.get $2 local.get $6 - i32.ge_u - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - local.get $2 - local.get $6 - i32.sub - local.set $2 - end - local.get $2 - i32.eqz + i32.sub + local.set $2 end + local.get $2 + i32.eqz if i32.const -30 local.set $3 @@ -8757,7 +8728,6 @@ select select local.set $0 - local.get $8 if local.get $0 f32.neg @@ -8881,12 +8851,12 @@ i32.const 6 i32.shr_s local.tee $8 - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $10 local.get $8 i32.const 1 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $5 local.get $4 i32.const 63 @@ -8904,7 +8874,7 @@ local.get $8 i32.const 2 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get i64.const 96 local.get $4 i64.extend_i32_s @@ -9365,12 +9335,12 @@ i32.const 6 i32.shr_s local.tee $8 - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $10 local.get $8 i32.const 1 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get local.set $6 local.get $4 i32.const 63 @@ -9388,7 +9358,7 @@ local.get $8 i32.const 2 i32.add - call $~lib/array/Array#__get + call $~lib/array/Array#__unchecked_get i64.const 96 local.get $4 i64.extend_i32_s @@ -9455,7 +9425,6 @@ local.get $9 select end - local.set $2 global.get $~lib/math/rempio2f_y local.tee $3 local.get $3 @@ -9495,7 +9464,6 @@ f64.mul f64.add local.set $1 - local.get $2 i32.const 1 i32.and if diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 6f38dd38..db26c0f5 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -65,10 +65,8 @@ (data (i32.const 8) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s\00") (data (i32.const 48) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00)\15DNn\83\f9\a2\c0\dd4\f5\d1W\'\fcA\90C<\99\95b\dba\c5\bb\de\abcQ\fe") (data (i32.const 96) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00@\00\00\00@\00\00\00 \00\00\00\04\00\00\00") - (data (i32.const 128) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") - (data (i32.const 184) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 232) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") - (data (i32.const 272) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00P\00R\00N\00G\00 \00m\00u\00s\00t\00 \00b\00e\00 \00s\00e\00e\00d\00e\00d\00.\00") + (data (i32.const 128) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (data (i32.const 168) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00P\00R\00N\00G\00 \00m\00u\00s\00t\00 \00b\00e\00 \00s\00e\00e\00d\00e\00d\00.\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/math/js i32 (i32.const 1)) @@ -255,34 +253,30 @@ local.get $1 f64.eq if - block $~lib/math/NativeMath.signbit|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $3 - local.get $3 - f64.eq - i32.and - end + local.get $0 + local.set $3 + local.get $3 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $3 + local.get $3 + f64.eq + i32.and i32.const 0 i32.ne - block $~lib/math/NativeMath.signbit|inlined.1 (result i32) - local.get $1 - local.set $3 - local.get $3 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $3 - local.get $3 - f64.eq - i32.and - end + local.get $1 + local.set $3 + local.get $3 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $3 + local.get $3 + f64.eq + i32.and i32.const 0 i32.ne i32.eq @@ -494,32 +488,28 @@ local.get $1 f32.eq if - block $~lib/math/NativeMathf.signbit|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + local.get $0 + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne - block $~lib/math/NativeMathf.signbit|inlined.1 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + local.get $1 + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne i32.eq @@ -605,12 +595,10 @@ ) (func $std/math/test_abs (; 44 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) - block $~lib/math/NativeMath.abs|inlined.0 (result f64) - local.get $0 - local.set $4 - local.get $4 - f64.abs - end + local.get $0 + local.set $4 + local.get $4 + f64.abs local.get $1 local.get $2 local.get $3 @@ -634,12 +622,10 @@ ) (func $std/math/test_absf (; 45 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) - block $~lib/math/NativeMathf.abs|inlined.0 (result f32) - local.get $0 - local.set $4 - local.get $4 - f32.abs - end + local.get $0 + local.set $4 + local.get $4 + f32.abs local.get $1 local.get $2 local.get $3 @@ -2691,61 +2677,45 @@ br_if $case3|0 br $case4|0 end - block - f64.const 0.4636476090008061 - local.get $8 - f64.const 2.2698777452961687e-17 - f64.sub - local.get $0 - f64.sub - f64.sub - local.set $3 - br $break|0 - unreachable - end - unreachable - end - block - f64.const 0.7853981633974483 + f64.const 0.4636476090008061 local.get $8 - f64.const 3.061616997868383e-17 + f64.const 2.2698777452961687e-17 f64.sub local.get $0 f64.sub f64.sub local.set $3 br $break|0 - unreachable end - unreachable - end - block - f64.const 0.982793723247329 + f64.const 0.7853981633974483 local.get $8 - f64.const 1.3903311031230998e-17 + f64.const 3.061616997868383e-17 f64.sub local.get $0 f64.sub f64.sub local.set $3 br $break|0 - unreachable end - unreachable - end - block - f64.const 1.5707963267948966 + f64.const 0.982793723247329 local.get $8 - f64.const 6.123233995736766e-17 + f64.const 1.3903311031230998e-17 f64.sub local.get $0 f64.sub f64.sub local.set $3 br $break|0 - unreachable end - unreachable + f64.const 1.5707963267948966 + local.get $8 + f64.const 6.123233995736766e-17 + f64.sub + local.get $0 + f64.sub + f64.sub + local.set $3 + br $break|0 end unreachable end @@ -2960,61 +2930,45 @@ br_if $case3|0 br $case4|0 end - block - f32.const 0.46364760398864746 - local.get $8 - f32.const 5.01215824399992e-09 - f32.sub - local.get $0 - f32.sub - f32.sub - local.set $3 - br $break|0 - unreachable - end - unreachable - end - block - f32.const 0.7853981256484985 + f32.const 0.46364760398864746 local.get $8 - f32.const 3.774894707930798e-08 + f32.const 5.01215824399992e-09 f32.sub local.get $0 f32.sub f32.sub local.set $3 br $break|0 - unreachable end - unreachable - end - block - f32.const 0.9827936887741089 + f32.const 0.7853981256484985 local.get $8 - f32.const 3.447321716976148e-08 + f32.const 3.774894707930798e-08 f32.sub local.get $0 f32.sub f32.sub local.set $3 br $break|0 - unreachable end - unreachable - end - block - f32.const 1.570796251296997 + f32.const 0.9827936887741089 local.get $8 - f32.const 7.549789415861596e-08 + f32.const 3.447321716976148e-08 f32.sub local.get $0 f32.sub f32.sub local.set $3 br $break|0 - unreachable end - unreachable + f32.const 1.570796251296997 + local.get $8 + f32.const 7.549789415861596e-08 + f32.sub + local.get $0 + f32.sub + f32.sub + local.set $3 + br $break|0 end unreachable end @@ -3522,7 +3476,6 @@ return end unreachable - f64.const 0 ) (func $std/math/test_atan2 (; 77 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 @@ -3861,7 +3814,6 @@ return end unreachable - f32.const 0 ) (func $std/math/test_atan2f (; 79 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 @@ -4166,12 +4118,10 @@ ) (func $std/math/test_ceil (; 84 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) - block $~lib/math/NativeMath.ceil|inlined.0 (result f64) - local.get $0 - local.set $4 - local.get $4 - f64.ceil - end + local.get $0 + local.set $4 + local.get $4 + f64.ceil local.get $1 local.get $2 local.get $3 @@ -4195,12 +4145,10 @@ ) (func $std/math/test_ceilf (; 85 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) - block $~lib/math/NativeMathf.ceil|inlined.0 (result f32) - local.get $0 - local.set $4 - local.get $4 - f32.ceil - end + local.get $0 + local.set $4 + local.get $4 + f32.ceil local.get $1 local.get $2 local.get $3 @@ -4215,34 +4163,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__get (; 87 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - block - block - i32.const 144 - i32.const 200 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - ) - (func $~lib/math/NativeMathf.cos (; 88 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cos (; 87 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -4291,42 +4212,40 @@ f32.const 1 return end - block $~lib/math/cos_kernf|inlined.0 (result f32) - local.get $0 - f64.promote_f32 - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $4 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const -0.001388676377460993 - local.get $4 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $6 - f32.const 1 - f64.promote_f32 - local.get $4 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $5 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $5 - local.get $4 - f64.mul - local.get $6 - f64.mul - f64.add - f32.demote_f64 - end + local.get $0 + f64.promote_f32 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $4 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $6 + f32.const 1 + f64.promote_f32 + local.get $4 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $4 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 return end local.get $1 @@ -4337,52 +4256,50 @@ i32.const 1075235811 i32.gt_u if - block $~lib/math/cos_kernf|inlined.1 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.sub - end - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $6 - local.get $6 - local.get $6 - f64.mul - local.set $5 - f64.const -0.001388676377460993 - local.get $6 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $4 - f32.const 1 + local.get $2 + if (result f64) + local.get $0 f64.promote_f32 - local.get $6 - f64.const -0.499999997251031 - f64.mul + f64.const 3.141592653589793 f64.add - local.get $5 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $5 - local.get $6 - f64.mul - local.get $4 - f64.mul - f64.add - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub end + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $6 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $4 + f32.const 1 + f64.promote_f32 + local.get $6 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $6 + f64.mul + local.get $4 + f64.mul + f64.add + f32.demote_f64 f32.neg return else @@ -4471,7 +4388,6 @@ return end unreachable - unreachable end local.get $1 i32.const 1088565717 @@ -4481,52 +4397,50 @@ i32.const 1085271519 i32.gt_u if - block $~lib/math/cos_kernf|inlined.2 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.sub - end - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $4 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const -0.001388676377460993 - local.get $4 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $6 - f32.const 1 + local.get $2 + if (result f64) + local.get $0 f64.promote_f32 - local.get $4 - f64.const -0.499999997251031 - f64.mul + f64.const 6.283185307179586 f64.add - local.get $5 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $5 - local.get $4 - f64.mul - local.get $6 - f64.mul - f64.add - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub end + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $4 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $6 + f32.const 1 + f64.promote_f32 + local.get $4 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $4 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 return else local.get $2 @@ -4615,7 +4529,6 @@ return end unreachable - unreachable end local.get $1 i32.const 2139095040 @@ -4658,124 +4571,122 @@ i32.trunc_f64_s br $~lib/math/rempio2f|inlined.0 end - block $~lib/math/pio2_large_quot|inlined.0 (result i32) - local.get $10 - local.set $12 - local.get $9 - local.set $11 - local.get $11 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.set $13 - local.get $13 - i32.const 6 - i32.shr_s - local.set $14 - local.get $13 - i32.const 63 - i32.and - local.set $15 + local.get $10 + local.set $12 + local.get $9 + local.set $11 + local.get $11 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $13 + local.get $13 + i32.const 6 + i32.shr_s + local.set $14 + local.get $13 + i32.const 63 + i32.and + local.set $15 + i32.const 112 + local.get $14 + i32.const 0 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $16 + i32.const 112 + local.get $14 + i32.const 1 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $17 + local.get $15 + i32.const 32 + i32.gt_s + if i32.const 112 local.get $14 - i32.const 0 + i32.const 2 i32.add - call $~lib/array/Array#__get - local.set $16 - i32.const 112 - local.get $14 - i32.const 1 - i32.add - call $~lib/array/Array#__get - local.set $17 - local.get $15 - i32.const 32 - i32.gt_s - if - i32.const 112 - local.get $14 - i32.const 2 - i32.add - call $~lib/array/Array#__get - local.set $19 - local.get $19 - i64.const 96 - local.get $15 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $18 - local.get $18 - local.get $17 - local.get $15 - i32.const 32 - i32.sub - i64.extend_i32_s - i64.shl - i64.or - local.set $18 - else - local.get $17 - i64.const 32 - local.get $15 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $18 - end - local.get $17 - i64.const 64 + call $~lib/array/Array#__unchecked_get + local.set $19 + local.get $19 + i64.const 96 local.get $15 i64.extend_i32_s i64.sub i64.shr_u - local.get $16 + local.set $18 + local.get $18 + local.get $17 local.get $15 + i32.const 32 + i32.sub i64.extend_i32_s i64.shl i64.or - local.set $19 - local.get $11 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.set $20 - local.get $20 - local.get $19 - i64.mul - local.get $20 - local.get $18 - i64.mul + local.set $18 + else + local.get $17 i64.const 32 + local.get $15 + i64.extend_i32_s + i64.sub i64.shr_u - i64.add - local.set $21 - local.get $21 - i64.const 2 - i64.shl - local.set $22 - local.get $21 - i64.const 62 - i64.shr_u - local.get $22 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.set $23 - f64.const 8.515303950216386e-20 - local.get $12 - f64.promote_f32 - f64.copysign - local.get $22 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - local.get $23 + local.set $18 end + local.get $17 + i64.const 64 + local.get $15 + i64.extend_i32_s + i64.sub + i64.shr_u + local.get $16 + local.get $15 + i64.extend_i32_s + i64.shl + i64.or + local.set $19 + local.get $11 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $20 + local.get $20 + local.get $19 + i64.mul + local.get $20 + local.get $18 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $21 + local.get $21 + i64.const 2 + i64.shl + local.set $22 + local.get $21 + i64.const 62 + i64.shr_u + local.get $22 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $23 + f64.const 8.515303950216386e-20 + local.get $12 + f64.promote_f32 + f64.copysign + local.get $22 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $23 local.set $23 i32.const 0 local.get $23 @@ -4875,7 +4786,7 @@ local.get $26 end ) - (func $std/math/test_cosf (; 89 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_cosf (; 88 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.cos local.get $1 @@ -4883,7 +4794,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.expm1 (; 90 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 89 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -5195,7 +5106,7 @@ local.get $14 f64.mul ) - (func $~lib/math/NativeMath.exp (; 91 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 90 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 f64) @@ -5360,7 +5271,7 @@ local.get $5 call $~lib/math/NativeMath.scalbn ) - (func $~lib/math/NativeMath.cosh (; 92 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 91 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -5424,34 +5335,32 @@ f64.mul return end - block $~lib/math/expo2|inlined.0 (result f64) - local.get $0 - local.set $4 - i32.const 1023 - i32.const 2043 - i32.const 2 - i32.div_u - i32.add - i32.const 20 - i32.shl - i64.extend_i32_u - i64.const 32 - i64.shl - f64.reinterpret_i64 - local.set $5 - local.get $4 - f64.const 1416.0996898839683 - f64.sub - call $~lib/math/NativeMath.exp - local.get $5 - f64.mul - local.get $5 - f64.mul - end + local.get $0 + local.set $4 + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_i32_u + i64.const 32 + i64.shl + f64.reinterpret_i64 + local.set $5 + local.get $4 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + local.get $5 + f64.mul + local.get $5 + f64.mul local.set $3 local.get $3 ) - (func $std/math/test_cosh (; 93 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cosh (; 92 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.cosh local.get $1 @@ -5475,7 +5384,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.expm1 (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 93 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5768,7 +5677,7 @@ local.get $13 f32.mul ) - (func $~lib/math/NativeMathf.exp (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 94 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -5912,7 +5821,7 @@ local.get $5 call $~lib/math/NativeMathf.scalbn ) - (func $~lib/math/NativeMathf.cosh (; 96 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 95 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -5969,29 +5878,27 @@ f32.add return end - block $~lib/math/expo2f|inlined.0 (result f32) - local.get $0 - local.set $2 - i32.const 127 - i32.const 235 - i32.const 1 - i32.shr_u - i32.add - i32.const 23 - i32.shl - f32.reinterpret_i32 - local.set $3 - local.get $2 - f32.const 162.88958740234375 - f32.sub - call $~lib/math/NativeMathf.exp - local.get $3 - f32.mul - local.get $3 - f32.mul - end + local.get $0 + local.set $2 + i32.const 127 + i32.const 235 + i32.const 1 + i32.shr_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $3 + local.get $2 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + local.get $3 + f32.mul + local.get $3 + f32.mul ) - (func $std/math/test_coshf (; 97 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_coshf (; 96 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.cosh local.get $1 @@ -5999,7 +5906,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_exp (; 98 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_exp (; 97 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.exp local.get $1 @@ -6023,7 +5930,7 @@ i32.const 0 end ) - (func $std/math/test_expf (; 99 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expf (; 98 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.exp local.get $1 @@ -6031,7 +5938,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_expm1 (; 100 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_expm1 (; 99 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.expm1 local.get $1 @@ -6055,7 +5962,7 @@ i32.const 0 end ) - (func $std/math/test_expm1f (; 101 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expm1f (; 100 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.expm1 local.get $1 @@ -6063,14 +5970,12 @@ local.get $3 call $std/math/check ) - (func $std/math/test_floor (; 102 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_floor (; 101 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) - block $~lib/math/NativeMath.floor|inlined.0 (result f64) - local.get $0 - local.set $4 - local.get $4 - f64.floor - end + local.get $0 + local.set $4 + local.get $4 + f64.floor local.get $1 local.get $2 local.get $3 @@ -6092,20 +5997,18 @@ i32.const 0 end ) - (func $std/math/test_floorf (; 103 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_floorf (; 102 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) - block $~lib/math/NativeMathf.floor|inlined.0 (result f32) - local.get $0 - local.set $4 - local.get $4 - f32.floor - end + local.get $0 + local.set $4 + local.get $4 + f32.floor local.get $1 local.get $2 local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.hypot (; 104 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 103 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -6300,7 +6203,7 @@ f64.sqrt f64.mul ) - (func $std/math/test_hypot (; 105 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_hypot (; 104 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.hypot @@ -6326,7 +6229,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.hypot (; 106 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 105 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6443,7 +6346,7 @@ f32.sqrt f32.mul ) - (func $std/math/test_hypotf (; 107 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_hypotf (; 106 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.hypot @@ -6452,7 +6355,7 @@ local.get $4 call $std/math/check ) - (func $std/math/test_log (; 108 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log (; 107 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log local.get $1 @@ -6476,7 +6379,7 @@ i32.const 0 end ) - (func $std/math/test_logf (; 109 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_logf (; 108 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log local.get $1 @@ -6484,7 +6387,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.log10 (; 110 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 109 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -6744,7 +6647,7 @@ local.get $8 f64.add ) - (func $std/math/test_log10 (; 111 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log10 (; 110 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log10 local.get $1 @@ -6768,7 +6671,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log10 (; 112 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 111 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -6968,7 +6871,7 @@ f32.mul f32.add ) - (func $std/math/test_log10f (; 113 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log10f (; 112 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log10 local.get $1 @@ -6976,7 +6879,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_log1p (; 114 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log1p (; 113 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log1p local.get $1 @@ -7000,7 +6903,7 @@ i32.const 0 end ) - (func $std/math/test_log1pf (; 115 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log1pf (; 114 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log1p local.get $1 @@ -7008,7 +6911,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.log2 (; 116 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 115 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -7261,7 +7164,7 @@ local.get $14 f64.add ) - (func $std/math/test_log2 (; 117 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log2 (; 116 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log2 local.get $1 @@ -7285,7 +7188,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log2 (; 118 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 117 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -7480,7 +7383,7 @@ local.get $14 f32.add ) - (func $std/math/test_log2f (; 119 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log2f (; 118 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log2 local.get $1 @@ -7488,18 +7391,16 @@ local.get $3 call $std/math/check ) - (func $std/math/test_max (; 120 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_max (; 119 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 f64) (local $6 f64) - block $~lib/math/NativeMath.max|inlined.0 (result f64) - local.get $0 - local.set $6 - local.get $1 - local.set $5 - local.get $6 - local.get $5 - f64.max - end + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $6 + local.get $5 + f64.max local.get $2 local.get $3 local.get $4 @@ -7522,35 +7423,31 @@ i32.const 0 end ) - (func $std/math/test_maxf (; 121 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_maxf (; 120 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (local $5 f32) (local $6 f32) - block $~lib/math/NativeMathf.max|inlined.0 (result f32) - local.get $0 - local.set $6 - local.get $1 - local.set $5 - local.get $6 - local.get $5 - f32.max - end + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $6 + local.get $5 + f32.max local.get $2 local.get $3 local.get $4 call $std/math/check ) - (func $std/math/test_min (; 122 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_min (; 121 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 f64) (local $6 f64) - block $~lib/math/NativeMath.min|inlined.0 (result f64) - local.get $0 - local.set $6 - local.get $1 - local.set $5 - local.get $6 - local.get $5 - f64.min - end + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $6 + local.get $5 + f64.min local.get $2 local.get $3 local.get $4 @@ -7573,24 +7470,22 @@ i32.const 0 end ) - (func $std/math/test_minf (; 123 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_minf (; 122 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (local $5 f32) (local $6 f32) - block $~lib/math/NativeMathf.min|inlined.0 (result f32) - local.get $0 - local.set $6 - local.get $1 - local.set $5 - local.get $6 - local.get $5 - f32.min - end + local.get $0 + local.set $6 + local.get $1 + local.set $5 + local.get $6 + local.get $5 + f32.min local.get $2 local.get $3 local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.mod (; 124 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 123 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -7770,7 +7665,6 @@ i64.sub local.set $4 br $continue|0 - unreachable end unreachable end @@ -7840,7 +7734,7 @@ local.get $2 f64.reinterpret_i64 ) - (func $std/math/test_mod (; 125 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_mod (; 124 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.mod @@ -7866,7 +7760,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.mod (; 126 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 125 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8046,7 +7940,6 @@ i32.sub local.set $4 br $continue|0 - unreachable end unreachable end @@ -8114,7 +8007,7 @@ local.get $2 f32.reinterpret_i32 ) - (func $std/math/test_modf (; 127 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_modf (; 126 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.mod @@ -8123,7 +8016,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.pow (; 128 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 127 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -8353,7 +8246,6 @@ unreachable end unreachable - unreachable end local.get $8 i32.const 1072693248 @@ -9204,7 +9096,7 @@ local.get $16 f64.mul ) - (func $std/math/test_pow (; 129 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_pow (; 128 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.pow @@ -9230,7 +9122,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.pow (; 130 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 129 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9389,7 +9281,6 @@ unreachable end unreachable - unreachable end local.get $5 i32.const 1065353216 @@ -10165,7 +10056,7 @@ local.get $11 f32.mul ) - (func $std/math/test_powf (; 131 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_powf (; 130 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.pow @@ -10174,7 +10065,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/murmurHash3 (; 132 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 131 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -10203,7 +10094,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 133 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 132 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -10238,12 +10129,12 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 134 ;) (type $FUNCSIG$vj) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 133 ;) (type $FUNCSIG$vj) (param $0 i64) local.get $0 i64.eqz if i32.const 0 - i32.const 248 + i32.const 144 i32.const 1020 i32.const 4 call $~lib/builtins/abort @@ -10267,26 +10158,18 @@ call $~lib/math/splitMix32 global.set $~lib/math/random_state1_32 ) - (func $~lib/math/NativeMath.random (; 135 ;) (type $FUNCSIG$d) (result f64) + (func $~lib/math/NativeMath.random (; 134 ;) (type $FUNCSIG$d) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) global.get $~lib/math/random_seeded i32.eqz if - block - block - i32.const 288 - i32.const 248 - i32.const 1029 - i32.const 24 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 184 + i32.const 144 + i32.const 1029 + i32.const 24 + call $~lib/builtins/abort unreachable end global.get $~lib/math/random_state0_64 @@ -10332,26 +10215,18 @@ f64.const 1 f64.sub ) - (func $~lib/math/NativeMathf.random (; 136 ;) (type $FUNCSIG$f) (result f32) + (func $~lib/math/NativeMathf.random (; 135 ;) (type $FUNCSIG$f) (result f32) (local $0 i32) (local $1 i32) (local $2 i32) global.get $~lib/math/random_seeded i32.eqz if - block - block - i32.const 288 - i32.const 248 - i32.const 2309 - i32.const 24 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 184 + i32.const 144 + i32.const 2309 + i32.const 24 + call $~lib/builtins/abort unreachable end global.get $~lib/math/random_state0_32 @@ -10395,41 +10270,37 @@ f32.const 1 f32.sub ) - (func $std/math/test_round (; 137 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_round (; 136 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) - block $~lib/math/NativeMath.round|inlined.0 (result f64) - local.get $0 - local.set $4 - local.get $4 - f64.const 0.5 - f64.add - f64.floor - local.get $4 - f64.copysign - end + local.get $0 + local.set $4 + local.get $4 + f64.const 0.5 + f64.add + f64.floor + local.get $4 + f64.copysign local.get $1 local.get $2 local.get $3 call $std/math/check ) - (func $std/math/test_roundf (; 138 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_roundf (; 137 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) - block $~lib/math/NativeMathf.round|inlined.0 (result f32) - local.get $0 - local.set $4 - local.get $4 - f32.const 0.5 - f32.add - f32.floor - local.get $4 - f32.copysign - end + local.get $0 + local.set $4 + local.get $4 + f32.const 0.5 + f32.add + f32.floor + local.get $4 + f32.copysign local.get $1 local.get $2 local.get $3 call $std/math/check ) - (func $std/math/test_sign (; 139 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sign (; 138 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) block $~lib/math/NativeMath.sign|inlined.0 (result f64) local.get $0 @@ -10472,7 +10343,7 @@ i32.const 0 end ) - (func $std/math/test_signf (; 140 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_signf (; 139 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) block $~lib/math/NativeMathf.sign|inlined.0 (result f32) local.get $0 @@ -10499,7 +10370,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.rem (; 141 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.rem (; 140 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -10639,101 +10510,92 @@ i32.const 0 local.set $9 block $break|0 - block + local.get $4 + local.get $5 + i64.lt_s + if local.get $4 + i64.const 1 + i64.add local.get $5 - i64.lt_s + i64.eq if - local.get $4 - i64.const 1 - i64.add - local.get $5 - i64.eq - if - block - br $break|0 - unreachable - end - unreachable - end - local.get $0 - return + br $break|0 end - block $break|1 - loop $continue|1 - local.get $4 - local.get $5 - i64.gt_s - i32.eqz - br_if $break|1 + local.get $0 + return + end + block $break|1 + loop $continue|1 + local.get $4 + local.get $5 + i64.gt_s + i32.eqz + br_if $break|1 + local.get $8 + local.get $3 + i64.ge_u + if local.get $8 local.get $3 - i64.ge_u - if - local.get $8 - local.get $3 - i64.sub - local.set $8 - local.get $9 - i32.const 1 - i32.add - local.set $9 - end - local.get $8 - i64.const 1 - i64.shl + i64.sub local.set $8 local.get $9 i32.const 1 - i32.shl + i32.add local.set $9 - local.get $4 - i64.const 1 - i64.sub - local.set $4 - br $continue|1 - unreachable end - unreachable - end - local.get $8 - local.get $3 - i64.ge_u - if local.get $8 - local.get $3 - i64.sub + i64.const 1 + i64.shl local.set $8 local.get $9 i32.const 1 - i32.add + i32.shl local.set $9 - end - local.get $8 - i64.const 0 - i64.eq - if - i64.const -60 - local.set $4 - else - local.get $8 - i64.const 11 - i64.shl - i64.clz - local.set $10 local.get $4 - local.get $10 + i64.const 1 i64.sub local.set $4 - local.get $8 - local.get $10 - i64.shl - local.set $8 + br $continue|1 end - br $break|0 unreachable end - unreachable + local.get $8 + local.get $3 + i64.ge_u + if + local.get $8 + local.get $3 + i64.sub + local.set $8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + end + local.get $8 + i64.const 0 + i64.eq + if + i64.const -60 + local.set $4 + else + local.get $8 + i64.const 11 + i64.shl + i64.clz + local.set $10 + local.get $4 + local.get $10 + i64.sub + local.set $4 + local.get $8 + local.get $10 + i64.shl + local.set $8 + end + br $break|0 end local.get $4 i64.const 0 @@ -10818,7 +10680,7 @@ local.get $0 end ) - (func $std/math/test_rem (; 142 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_rem (; 141 ;) (type $FUNCSIG$iddddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.rem @@ -10827,7 +10689,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMathf.rem (; 143 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.rem (; 142 ;) (type $FUNCSIG$fff) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10965,101 +10827,92 @@ i32.const 0 local.set $8 block $break|0 - block + local.get $4 + local.get $5 + i32.lt_s + if local.get $4 + i32.const 1 + i32.add local.get $5 - i32.lt_s + i32.eq if - local.get $4 - i32.const 1 - i32.add - local.get $5 - i32.eq - if - block - br $break|0 - unreachable - end - unreachable - end - local.get $0 - return + br $break|0 end - block $break|1 - loop $continue|1 - local.get $4 - local.get $5 - i32.gt_s - i32.eqz - br_if $break|1 + local.get $0 + return + end + block $break|1 + loop $continue|1 + local.get $4 + local.get $5 + i32.gt_s + i32.eqz + br_if $break|1 + local.get $7 + local.get $3 + i32.ge_u + if local.get $7 local.get $3 - i32.ge_u - if - local.get $7 - local.get $3 - i32.sub - local.set $7 - local.get $8 - i32.const 1 - i32.add - local.set $8 - end - local.get $7 - i32.const 1 - i32.shl + i32.sub local.set $7 local.get $8 i32.const 1 - i32.shl + i32.add local.set $8 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $continue|1 - unreachable end - unreachable - end - local.get $7 - local.get $3 - i32.ge_u - if local.get $7 - local.get $3 - i32.sub + i32.const 1 + i32.shl local.set $7 local.get $8 i32.const 1 - i32.add - local.set $8 - end - local.get $7 - i32.const 0 - i32.eq - if - i32.const -30 - local.set $4 - else - local.get $7 - i32.const 8 i32.shl - i32.clz - local.set $9 + local.set $8 local.get $4 - local.get $9 + i32.const 1 i32.sub local.set $4 - local.get $7 - local.get $9 - i32.shl - local.set $7 + br $continue|1 end - br $break|0 unreachable end - unreachable + local.get $7 + local.get $3 + i32.ge_u + if + local.get $7 + local.get $3 + i32.sub + local.set $7 + local.get $8 + i32.const 1 + i32.add + local.set $8 + end + local.get $7 + i32.const 0 + i32.eq + if + i32.const -30 + local.set $4 + else + local.get $7 + i32.const 8 + i32.shl + i32.clz + local.set $9 + local.get $4 + local.get $9 + i32.sub + local.set $4 + local.get $7 + local.get $9 + i32.shl + local.set $7 + end + br $break|0 end local.get $4 i32.const 0 @@ -11144,7 +10997,7 @@ local.get $0 end ) - (func $std/math/test_remf (; 144 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_remf (; 143 ;) (type $FUNCSIG$iffffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.rem @@ -11153,7 +11006,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMathf.sin (; 145 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 144 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -11202,45 +11055,43 @@ local.get $0 return end - block $~lib/math/sin_kernf|inlined.5 (result f32) - local.get $0 - f64.promote_f32 - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $4 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const -1.9839334836096632e-04 - local.get $4 - f64.const 2.718311493989822e-06 - f64.mul - f64.add - local.set $6 - local.get $4 - local.get $3 - f64.mul - local.set $7 - local.get $3 - local.get $7 - f64.const -0.16666666641626524 - local.get $4 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $7 - local.get $5 - f64.mul - local.get $6 - f64.mul - f64.add - f32.demote_f64 - end + local.get $0 + f64.promote_f32 + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -1.9839334836096632e-04 + local.get $4 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $6 + local.get $4 + local.get $3 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.const -0.16666666641626524 + local.get $4 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + local.get $5 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 return end local.get $1 @@ -11253,44 +11104,42 @@ if local.get $2 if (result f32) - block $~lib/math/cos_kernf|inlined.4 (result f32) - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $7 - local.get $7 - local.get $7 - f64.mul - local.set $6 - f64.const -0.001388676377460993 - local.get $7 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $5 - f32.const 1 - f64.promote_f32 - local.get $7 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $6 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $6 - local.get $7 - f64.mul - local.get $5 - f64.mul - f64.add - f32.demote_f64 - end + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + f64.const -0.001388676377460993 + local.get $7 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $5 + f32.const 1 + f64.promote_f32 + local.get $7 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $6 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 f32.neg else local.get $0 @@ -11332,56 +11181,54 @@ end return end - block $~lib/math/sin_kernf|inlined.6 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.sub - end - f64.neg - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $7 - local.get $7 - local.get $7 - f64.mul - local.set $6 - f64.const -1.9839334836096632e-04 - local.get $7 - f64.const 2.718311493989822e-06 - f64.mul + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 f64.add - local.set $5 - local.get $7 - local.get $3 - f64.mul - local.set $4 - local.get $3 - local.get $4 - f64.const -0.16666666641626524 - local.get $7 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $4 - local.get $6 - f64.mul - local.get $5 - f64.mul - f64.add - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub end + f64.neg + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + f64.const -1.9839334836096632e-04 + local.get $7 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $5 + local.get $7 + local.get $3 + f64.mul + local.set $4 + local.get $3 + local.get $4 + f64.const -0.16666666641626524 + local.get $7 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $4 + local.get $6 + f64.mul + local.get $5 + f64.mul + f64.add + f32.demote_f64 return end local.get $1 @@ -11431,97 +11278,93 @@ f64.add f32.demote_f64 else - block $~lib/math/cos_kernf|inlined.7 (result f32) - local.get $0 - f64.promote_f32 - f64.const 4.71238898038469 - f64.sub - local.set $7 - local.get $7 - local.get $7 - f64.mul - local.set $6 - local.get $6 - local.get $6 - f64.mul - local.set $5 - f64.const -0.001388676377460993 - local.get $6 - f64.const 2.439044879627741e-05 - f64.mul - f64.add - local.set $4 - f32.const 1 - f64.promote_f32 - local.get $6 - f64.const -0.499999997251031 - f64.mul - f64.add - local.get $5 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $5 - local.get $6 - f64.mul - local.get $4 - f64.mul - f64.add - f32.demote_f64 - end + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub + local.set $7 + local.get $7 + local.get $7 + f64.mul + local.set $6 + local.get $6 + local.get $6 + f64.mul + local.set $5 + f64.const -0.001388676377460993 + local.get $6 + f64.const 2.439044879627741e-05 + f64.mul + f64.add + local.set $4 + f32.const 1 + f64.promote_f32 + local.get $6 + f64.const -0.499999997251031 + f64.mul + f64.add + local.get $5 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $5 + local.get $6 + f64.mul + local.get $4 + f64.mul + f64.add + f32.demote_f64 f32.neg end return end - block $~lib/math/sin_kernf|inlined.7 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.sub - end - local.set $3 - local.get $3 - local.get $3 - f64.mul - local.set $4 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const -1.9839334836096632e-04 - local.get $4 - f64.const 2.718311493989822e-06 - f64.mul + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 f64.add - local.set $6 - local.get $4 - local.get $3 - f64.mul - local.set $7 - local.get $3 - local.get $7 - f64.const -0.16666666641626524 - local.get $4 - f64.const 0.008333329385889463 - f64.mul - f64.add - f64.mul - f64.add - local.get $7 - local.get $5 - f64.mul - local.get $6 - f64.mul - f64.add - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub end + local.set $3 + local.get $3 + local.get $3 + f64.mul + local.set $4 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const -1.9839334836096632e-04 + local.get $4 + f64.const 2.718311493989822e-06 + f64.mul + f64.add + local.set $6 + local.get $4 + local.get $3 + f64.mul + local.set $7 + local.get $3 + local.get $7 + f64.const -0.16666666641626524 + local.get $4 + f64.const 0.008333329385889463 + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + local.get $5 + f64.mul + local.get $6 + f64.mul + f64.add + f32.demote_f64 return end local.get $1 @@ -11565,124 +11408,122 @@ i32.trunc_f64_s br $~lib/math/rempio2f|inlined.1 end - block $~lib/math/pio2_large_quot|inlined.1 (result i32) - local.get $10 - local.set $12 - local.get $9 - local.set $11 - local.get $11 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.set $13 - local.get $13 - i32.const 6 - i32.shr_s - local.set $14 - local.get $13 - i32.const 63 - i32.and - local.set $15 + local.get $10 + local.set $12 + local.get $9 + local.set $11 + local.get $11 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $13 + local.get $13 + i32.const 6 + i32.shr_s + local.set $14 + local.get $13 + i32.const 63 + i32.and + local.set $15 + i32.const 112 + local.get $14 + i32.const 0 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $16 + i32.const 112 + local.get $14 + i32.const 1 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $17 + local.get $15 + i32.const 32 + i32.gt_s + if i32.const 112 local.get $14 - i32.const 0 + i32.const 2 i32.add - call $~lib/array/Array#__get - local.set $16 - i32.const 112 - local.get $14 - i32.const 1 - i32.add - call $~lib/array/Array#__get - local.set $17 - local.get $15 - i32.const 32 - i32.gt_s - if - i32.const 112 - local.get $14 - i32.const 2 - i32.add - call $~lib/array/Array#__get - local.set $19 - local.get $19 - i64.const 96 - local.get $15 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $18 - local.get $18 - local.get $17 - local.get $15 - i32.const 32 - i32.sub - i64.extend_i32_s - i64.shl - i64.or - local.set $18 - else - local.get $17 - i64.const 32 - local.get $15 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $18 - end - local.get $17 - i64.const 64 + call $~lib/array/Array#__unchecked_get + local.set $19 + local.get $19 + i64.const 96 local.get $15 i64.extend_i32_s i64.sub i64.shr_u - local.get $16 + local.set $18 + local.get $18 + local.get $17 local.get $15 + i32.const 32 + i32.sub i64.extend_i32_s i64.shl i64.or - local.set $19 - local.get $11 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.set $20 - local.get $20 - local.get $19 - i64.mul - local.get $20 - local.get $18 - i64.mul + local.set $18 + else + local.get $17 i64.const 32 + local.get $15 + i64.extend_i32_s + i64.sub i64.shr_u - i64.add - local.set $21 - local.get $21 - i64.const 2 - i64.shl - local.set $22 - local.get $21 - i64.const 62 - i64.shr_u - local.get $22 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.set $23 - f64.const 8.515303950216386e-20 - local.get $12 - f64.promote_f32 - f64.copysign - local.get $22 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - local.get $23 + local.set $18 end + local.get $17 + i64.const 64 + local.get $15 + i64.extend_i32_s + i64.sub + i64.shr_u + local.get $16 + local.get $15 + i64.extend_i32_s + i64.shl + i64.or + local.set $19 + local.get $11 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $20 + local.get $20 + local.get $19 + i64.mul + local.get $20 + local.get $18 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $21 + local.get $21 + i64.const 2 + i64.shl + local.set $22 + local.get $21 + i64.const 62 + i64.shr_u + local.get $22 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $23 + f64.const 8.515303950216386e-20 + local.get $12 + f64.promote_f32 + f64.copysign + local.get $22 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $23 local.set $23 i32.const 0 local.get $23 @@ -11780,7 +11621,7 @@ local.get $26 end ) - (func $std/math/test_sinf (; 146 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sinf (; 145 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.sin local.get $1 @@ -11788,7 +11629,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.sinh (; 147 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 146 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -11860,35 +11701,33 @@ f64.const 2 local.get $5 f64.mul - block $~lib/math/expo2|inlined.1 (result f64) - local.get $2 - local.set $6 - i32.const 1023 - i32.const 2043 - i32.const 2 - i32.div_u - i32.add - i32.const 20 - i32.shl - i64.extend_i32_u - i64.const 32 - i64.shl - f64.reinterpret_i64 - local.set $7 - local.get $6 - f64.const 1416.0996898839683 - f64.sub - call $~lib/math/NativeMath.exp - local.get $7 - f64.mul - local.get $7 - f64.mul - end + local.get $2 + local.set $6 + i32.const 1023 + i32.const 2043 + i32.const 2 + i32.div_u + i32.add + i32.const 20 + i32.shl + i64.extend_i32_u + i64.const 32 + i64.shl + f64.reinterpret_i64 + local.set $7 + local.get $6 + f64.const 1416.0996898839683 + f64.sub + call $~lib/math/NativeMath.exp + local.get $7 + f64.mul + local.get $7 + f64.mul f64.mul local.set $4 local.get $4 ) - (func $std/math/test_sinh (; 148 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sinh (; 147 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.sinh local.get $1 @@ -11912,7 +11751,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sinh (; 149 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 148 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -11978,32 +11817,30 @@ f32.const 2 local.get $4 f32.mul - block $~lib/math/expo2f|inlined.1 (result f32) - local.get $2 - local.set $5 - i32.const 127 - i32.const 235 - i32.const 1 - i32.shr_u - i32.add - i32.const 23 - i32.shl - f32.reinterpret_i32 - local.set $6 - local.get $5 - f32.const 162.88958740234375 - f32.sub - call $~lib/math/NativeMathf.exp - local.get $6 - f32.mul - local.get $6 - f32.mul - end + local.get $2 + local.set $5 + i32.const 127 + i32.const 235 + i32.const 1 + i32.shr_u + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $6 + local.get $5 + f32.const 162.88958740234375 + f32.sub + call $~lib/math/NativeMathf.exp + local.get $6 + f32.mul + local.get $6 + f32.mul f32.mul local.set $3 local.get $3 ) - (func $std/math/test_sinhf (; 150 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sinhf (; 149 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.sinh local.get $1 @@ -12011,14 +11848,12 @@ local.get $3 call $std/math/check ) - (func $std/math/test_sqrt (; 151 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sqrt (; 150 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) - block $~lib/math/NativeMath.sqrt|inlined.0 (result f64) - local.get $0 - local.set $4 - local.get $4 - f64.sqrt - end + local.get $0 + local.set $4 + local.get $4 + f64.sqrt local.get $1 local.get $2 local.get $3 @@ -12040,20 +11875,18 @@ i32.const 0 end ) - (func $std/math/test_sqrtf (; 152 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sqrtf (; 151 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) - block $~lib/math/NativeMathf.sqrt|inlined.0 (result f32) - local.get $0 - local.set $4 - local.get $4 - f32.sqrt - end + local.get $0 + local.set $4 + local.get $4 + f32.sqrt local.get $1 local.get $2 local.get $3 call $std/math/check ) - (func $~lib/math/NativeMathf.tan (; 153 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 152 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12103,9 +11936,162 @@ local.get $0 return end - block $~lib/math/tan_kernf|inlined.0 (result f32) - local.get $0 + local.get $0 + f64.promote_f32 + local.set $4 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const 0.002974357433599673 + local.get $5 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $6 + f64.const 0.05338123784456704 + local.get $5 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $7 + local.get $5 + local.get $5 + f64.mul + local.set $8 + local.get $5 + local.get $4 + f64.mul + local.set $9 + f64.const 0.3333313950307914 + local.get $5 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $10 + local.get $4 + local.get $9 + local.get $10 + f64.mul + f64.add + local.get $9 + local.get $8 + f64.mul + local.get $7 + local.get $8 + local.get $6 + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + local.get $3 + if (result f64) + f32.const -1 f64.promote_f32 + local.get $6 + f64.div + else + local.get $6 + end + f32.demote_f64 + return + end + local.get $1 + i32.const 1081824209 + i32.le_u + if + local.get $1 + i32.const 1075235811 + i32.le_u + if + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.sub + end + local.set $4 + i32.const 1 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $10 + f64.const 0.002974357433599673 + local.get $10 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $9 + f64.const 0.05338123784456704 + local.get $10 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $8 + local.get $10 + local.get $10 + f64.mul + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 + f64.const 0.3333313950307914 + local.get $10 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $5 + local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $9 + f64.div + else + local.get $9 + end + f32.demote_f64 + return + else + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.add + else + local.get $0 + f64.promote_f32 + f64.const 3.141592653589793 + f64.sub + end local.set $4 i32.const 0 local.set $3 @@ -12165,169 +12151,9 @@ local.get $6 end f32.demote_f64 - end - return - end - local.get $1 - i32.const 1081824209 - i32.le_u - if - local.get $1 - i32.const 1075235811 - i32.le_u - if - block $~lib/math/tan_kernf|inlined.1 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.sub - end - local.set $4 - i32.const 1 - local.set $3 - local.get $4 - local.get $4 - f64.mul - local.set $10 - f64.const 0.002974357433599673 - local.get $10 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $9 - f64.const 0.05338123784456704 - local.get $10 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $8 - local.get $10 - local.get $10 - f64.mul - local.set $7 - local.get $10 - local.get $4 - f64.mul - local.set $6 - f64.const 0.3333313950307914 - local.get $10 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $5 - local.get $4 - local.get $6 - local.get $5 - f64.mul - f64.add - local.get $6 - local.get $7 - f64.mul - local.get $8 - local.get $7 - local.get $9 - f64.mul - f64.add - f64.mul - f64.add - local.set $9 - local.get $3 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $9 - f64.div - else - local.get $9 - end - f32.demote_f64 - end - return - else - block $~lib/math/tan_kernf|inlined.2 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 3.141592653589793 - f64.sub - end - local.set $4 - i32.const 0 - local.set $3 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const 0.002974357433599673 - local.get $5 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $6 - f64.const 0.05338123784456704 - local.get $5 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $7 - local.get $5 - local.get $5 - f64.mul - local.set $8 - local.get $5 - local.get $4 - f64.mul - local.set $9 - f64.const 0.3333313950307914 - local.get $5 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $10 - local.get $4 - local.get $9 - local.get $10 - f64.mul - f64.add - local.get $9 - local.get $8 - f64.mul - local.get $7 - local.get $8 - local.get $6 - f64.mul - f64.add - f64.mul - f64.add - local.set $6 - local.get $3 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $6 - f64.div - else - local.get $6 - end - f32.demote_f64 - end return end unreachable - unreachable end local.get $1 i32.const 1088565717 @@ -12337,158 +12163,153 @@ i32.const 1085271519 i32.le_u if - block $~lib/math/tan_kernf|inlined.3 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 4.71238898038469 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 4.71238898038469 - f64.sub - end - local.set $4 - i32.const 1 - local.set $3 - local.get $4 - local.get $4 - f64.mul - local.set $10 - f64.const 0.002974357433599673 - local.get $10 - f64.const 0.009465647849436732 - f64.mul + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 f64.add - local.set $9 - f64.const 0.05338123784456704 - local.get $10 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $8 - local.get $10 - local.get $10 - f64.mul - local.set $7 - local.get $10 - local.get $4 - f64.mul - local.set $6 - f64.const 0.3333313950307914 - local.get $10 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $5 - local.get $4 - local.get $6 - local.get $5 - f64.mul - f64.add - local.get $6 - local.get $7 - f64.mul - local.get $8 - local.get $7 - local.get $9 - f64.mul - f64.add - f64.mul - f64.add - local.set $9 - local.get $3 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $9 - f64.div - else - local.get $9 - end - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.sub end + local.set $4 + i32.const 1 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $10 + f64.const 0.002974357433599673 + local.get $10 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $9 + f64.const 0.05338123784456704 + local.get $10 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $8 + local.get $10 + local.get $10 + f64.mul + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 + f64.const 0.3333313950307914 + local.get $10 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $5 + local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $9 + f64.div + else + local.get $9 + end + f32.demote_f64 return else - block $~lib/math/tan_kernf|inlined.4 (result f32) - local.get $2 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.add - else - local.get $0 - f64.promote_f32 - f64.const 6.283185307179586 - f64.sub - end - local.set $4 - i32.const 0 - local.set $3 - local.get $4 - local.get $4 - f64.mul - local.set $5 - f64.const 0.002974357433599673 - local.get $5 - f64.const 0.009465647849436732 - f64.mul + local.get $2 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 f64.add - local.set $6 - f64.const 0.05338123784456704 - local.get $5 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $7 - local.get $5 - local.get $5 - f64.mul - local.set $8 - local.get $5 - local.get $4 - f64.mul - local.set $9 - f64.const 0.3333313950307914 - local.get $5 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $10 - local.get $4 - local.get $9 - local.get $10 - f64.mul - f64.add - local.get $9 - local.get $8 - f64.mul - local.get $7 - local.get $8 - local.get $6 - f64.mul - f64.add - f64.mul - f64.add - local.set $6 - local.get $3 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $6 - f64.div - else - local.get $6 - end - f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const 6.283185307179586 + f64.sub end + local.set $4 + i32.const 0 + local.set $3 + local.get $4 + local.get $4 + f64.mul + local.set $5 + f64.const 0.002974357433599673 + local.get $5 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $6 + f64.const 0.05338123784456704 + local.get $5 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $7 + local.get $5 + local.get $5 + f64.mul + local.set $8 + local.get $5 + local.get $4 + f64.mul + local.set $9 + f64.const 0.3333313950307914 + local.get $5 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $10 + local.get $4 + local.get $9 + local.get $10 + f64.mul + f64.add + local.get $9 + local.get $8 + f64.mul + local.get $7 + local.get $8 + local.get $6 + f64.mul + f64.add + f64.mul + f64.add + local.set $6 + local.get $3 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $6 + f64.div + else + local.get $6 + end + f32.demote_f64 return end unreachable - unreachable end local.get $1 i32.const 2139095040 @@ -12531,124 +12352,122 @@ i32.trunc_f64_s br $~lib/math/rempio2f|inlined.2 end - block $~lib/math/pio2_large_quot|inlined.2 (result i32) - local.get $12 - local.set $14 - local.get $11 - local.set $13 - local.get $13 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.set $15 - local.get $15 - i32.const 6 - i32.shr_s - local.set $16 - local.get $15 - i32.const 63 - i32.and - local.set $17 + local.get $12 + local.set $14 + local.get $11 + local.set $13 + local.get $13 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.set $15 + local.get $15 + i32.const 6 + i32.shr_s + local.set $16 + local.get $15 + i32.const 63 + i32.and + local.set $17 + i32.const 112 + local.get $16 + i32.const 0 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $18 + i32.const 112 + local.get $16 + i32.const 1 + i32.add + call $~lib/array/Array#__unchecked_get + local.set $19 + local.get $17 + i32.const 32 + i32.gt_s + if i32.const 112 local.get $16 - i32.const 0 + i32.const 2 i32.add - call $~lib/array/Array#__get - local.set $18 - i32.const 112 - local.get $16 - i32.const 1 - i32.add - call $~lib/array/Array#__get - local.set $19 - local.get $17 - i32.const 32 - i32.gt_s - if - i32.const 112 - local.get $16 - i32.const 2 - i32.add - call $~lib/array/Array#__get - local.set $21 - local.get $21 - i64.const 96 - local.get $17 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $20 - local.get $20 - local.get $19 - local.get $17 - i32.const 32 - i32.sub - i64.extend_i32_s - i64.shl - i64.or - local.set $20 - else - local.get $19 - i64.const 32 - local.get $17 - i64.extend_i32_s - i64.sub - i64.shr_u - local.set $20 - end - local.get $19 - i64.const 64 + call $~lib/array/Array#__unchecked_get + local.set $21 + local.get $21 + i64.const 96 local.get $17 i64.extend_i32_s i64.sub i64.shr_u - local.get $18 + local.set $20 + local.get $20 + local.get $19 local.get $17 + i32.const 32 + i32.sub i64.extend_i32_s i64.shl i64.or - local.set $21 - local.get $13 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.set $22 - local.get $22 - local.get $21 - i64.mul - local.get $22 - local.get $20 - i64.mul + local.set $20 + else + local.get $19 i64.const 32 + local.get $17 + i64.extend_i32_s + i64.sub i64.shr_u - i64.add - local.set $23 - local.get $23 - i64.const 2 - i64.shl - local.set $24 - local.get $23 - i64.const 62 - i64.shr_u - local.get $24 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.set $25 - f64.const 8.515303950216386e-20 - local.get $14 - f64.promote_f32 - f64.copysign - local.get $24 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - local.get $25 + local.set $20 end + local.get $19 + i64.const 64 + local.get $17 + i64.extend_i32_s + i64.sub + i64.shr_u + local.get $18 + local.get $17 + i64.extend_i32_s + i64.shl + i64.or + local.set $21 + local.get $13 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.set $22 + local.get $22 + local.get $21 + i64.mul + local.get $22 + local.get $20 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $23 + i64.const 2 + i64.shl + local.set $24 + local.get $23 + i64.const 62 + i64.shr_u + local.get $24 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.set $25 + f64.const 8.515303950216386e-20 + local.get $14 + f64.promote_f32 + f64.copysign + local.get $24 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + local.get $25 local.set $25 i32.const 0 local.get $25 @@ -12660,72 +12479,70 @@ local.set $26 global.get $~lib/math/rempio2f_y local.set $27 - block $~lib/math/tan_kernf|inlined.5 (result f32) - local.get $27 - local.set $4 - local.get $26 - i32.const 1 - i32.and - local.set $13 - local.get $4 - local.get $4 - f64.mul - local.set $10 - f64.const 0.002974357433599673 - local.get $10 - f64.const 0.009465647849436732 - f64.mul - f64.add - local.set $9 - f64.const 0.05338123784456704 - local.get $10 - f64.const 0.024528318116654728 - f64.mul - f64.add - local.set $8 - local.get $10 - local.get $10 - f64.mul - local.set $7 - local.get $10 - local.get $4 - f64.mul - local.set $6 - f64.const 0.3333313950307914 - local.get $10 - f64.const 0.13339200271297674 - f64.mul - f64.add - local.set $5 - local.get $4 - local.get $6 - local.get $5 - f64.mul - f64.add - local.get $6 - local.get $7 - f64.mul - local.get $8 - local.get $7 + local.get $27 + local.set $4 + local.get $26 + i32.const 1 + i32.and + local.set $13 + local.get $4 + local.get $4 + f64.mul + local.set $10 + f64.const 0.002974357433599673 + local.get $10 + f64.const 0.009465647849436732 + f64.mul + f64.add + local.set $9 + f64.const 0.05338123784456704 + local.get $10 + f64.const 0.024528318116654728 + f64.mul + f64.add + local.set $8 + local.get $10 + local.get $10 + f64.mul + local.set $7 + local.get $10 + local.get $4 + f64.mul + local.set $6 + f64.const 0.3333313950307914 + local.get $10 + f64.const 0.13339200271297674 + f64.mul + f64.add + local.set $5 + local.get $4 + local.get $6 + local.get $5 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.mul + local.get $8 + local.get $7 + local.get $9 + f64.mul + f64.add + f64.mul + f64.add + local.set $9 + local.get $13 + if (result f64) + f32.const -1 + f64.promote_f32 + local.get $9 + f64.div + else local.get $9 - f64.mul - f64.add - f64.mul - f64.add - local.set $9 - local.get $13 - if (result f64) - f32.const -1 - f64.promote_f32 - local.get $9 - f64.div - else - local.get $9 - end - f32.demote_f64 end + f32.demote_f64 ) - (func $std/math/test_tanf (; 154 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_tanf (; 153 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.tan local.get $1 @@ -12733,7 +12550,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.tanh (; 155 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 154 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -12825,7 +12642,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_tanh (; 156 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_tanh (; 155 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.tanh local.get $1 @@ -12849,7 +12666,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tanh (; 157 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 156 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -12935,7 +12752,7 @@ local.get $0 f32.copysign ) - (func $std/math/test_tanhf (; 158 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_tanhf (; 157 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.tanh local.get $1 @@ -12943,14 +12760,12 @@ local.get $3 call $std/math/check ) - (func $std/math/test_trunc (; 159 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_trunc (; 158 ;) (type $FUNCSIG$idddi) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) - block $~lib/math/NativeMath.trunc|inlined.0 (result f64) - local.get $0 - local.set $4 - local.get $4 - f64.trunc - end + local.get $0 + local.set $4 + local.get $4 + f64.trunc local.get $1 local.get $2 local.get $3 @@ -12972,20 +12787,18 @@ i32.const 0 end ) - (func $std/math/test_truncf (; 160 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_truncf (; 159 ;) (type $FUNCSIG$ifffi) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) - block $~lib/math/NativeMathf.trunc|inlined.0 (result f32) - local.get $0 - local.set $4 - local.get $4 - f32.trunc - end + local.get $0 + local.set $4 + local.get $4 + f32.trunc local.get $1 local.get $2 local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.imul (; 161 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 160 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64) local.get $0 local.get $1 f64.add @@ -13018,7 +12831,7 @@ i32.mul f64.convert_i32_s ) - (func $~lib/math/NativeMath.clz32 (; 162 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.clz32 (; 161 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) local.get $0 call $~lib/number/isFinite i32.eqz @@ -13041,7 +12854,7 @@ i32.clz f64.convert_i32_s ) - (func $~lib/math/ipow64 (; 163 ;) (type $FUNCSIG$jji) (param $0 i64) (param $1 i32) (result i64) + (func $~lib/math/ipow64 (; 162 ;) (type $FUNCSIG$jji) (param $0 i64) (param $1 i32) (result i64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -13129,27 +12942,6 @@ br_if $case5|1 br $break|1 end - block - local.get $1 - i32.const 1 - i32.and - if - local.get $2 - local.get $0 - i64.mul - local.set $2 - end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - end - block local.get $1 i32.const 1 i32.and @@ -13168,8 +12960,6 @@ i64.mul local.set $0 end - end - block local.get $1 i32.const 1 i32.and @@ -13188,8 +12978,6 @@ i64.mul local.set $0 end - end - block local.get $1 i32.const 1 i32.and @@ -13208,8 +12996,6 @@ i64.mul local.set $0 end - end - block local.get $1 i32.const 1 i32.and @@ -13228,6 +13014,23 @@ i64.mul local.set $0 end + local.get $1 + i32.const 1 + i32.and + if + local.get $2 + local.get $0 + i64.mul + local.set $2 + end + local.get $1 + i32.const 1 + i32.shr_s + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 end local.get $1 i32.const 1 @@ -13267,13 +13070,12 @@ i64.mul local.set $0 br $continue|2 - unreachable end unreachable end local.get $2 ) - (func $~lib/math/ipow32f (; 164 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/ipow32f (; 163 ;) (type $FUNCSIG$ffi) (param $0 f32) (param $1 i32) (result f32) (local $2 i32) (local $3 f32) local.get $1 @@ -13311,7 +13113,6 @@ f32.mul local.set $0 br $continue|0 - unreachable end unreachable end @@ -13324,7 +13125,7 @@ local.get $3 end ) - (func $~lib/math/ipow64f (; 165 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/ipow64f (; 164 ;) (type $FUNCSIG$ddi) (param $0 f64) (param $1 i32) (result f64) (local $2 i32) (local $3 f64) local.get $1 @@ -13362,7 +13163,6 @@ f64.mul local.set $0 br $continue|0 - unreachable end unreachable end @@ -13375,7 +13175,7 @@ local.get $3 end ) - (func $start:std/math (; 166 ;) (type $FUNCSIG$v) + (func $start:std/math (; 165 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 f64) (local $2 i64) @@ -37686,17 +37486,14 @@ i32.add local.set $0 br $loop|0 - unreachable end unreachable end - block $~lib/math/NativeMathf.seedRandom|inlined.0 - call $~lib/bindings/Math/random - i64.reinterpret_f64 - local.set $2 - local.get $2 - call $~lib/math/NativeMath.seedRandom - end + call $~lib/bindings/Math/random + i64.reinterpret_f64 + local.set $2 + local.get $2 + call $~lib/math/NativeMath.seedRandom block $break|1 i32.const 0 local.set $0 @@ -37733,7 +37530,6 @@ i32.add local.set $0 br $loop|1 - unreachable end unreachable end @@ -38751,19 +38547,17 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMath.signbit|inlined.2 (result i32) - f64.const 0 - local.set $1 - local.get $1 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $1 - local.get $1 - f64.eq - i32.and - end + f64.const 0 + local.set $1 + local.get $1 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $1 + local.get $1 + f64.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -38777,19 +38571,17 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMath.signbit|inlined.3 (result i32) - f64.const -0 - local.set $1 - local.get $1 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $1 - local.get $1 - f64.eq - i32.and - end + f64.const -0 + local.set $1 + local.get $1 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $1 + local.get $1 + f64.eq + i32.and i32.const 0 i32.ne i32.const 1 @@ -38803,19 +38595,17 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMath.signbit|inlined.4 (result i32) - f64.const 1 - local.set $1 - local.get $1 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $1 - local.get $1 - f64.eq - i32.and - end + f64.const 1 + local.set $1 + local.get $1 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $1 + local.get $1 + f64.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -38829,19 +38619,17 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMath.signbit|inlined.5 (result i32) - f64.const -1 - local.set $1 - local.get $1 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $1 - local.get $1 - f64.eq - i32.and - end + f64.const -1 + local.set $1 + local.get $1 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $1 + local.get $1 + f64.eq + i32.and i32.const 0 i32.ne i32.const 1 @@ -38855,19 +38643,17 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMath.signbit|inlined.6 (result i32) - f64.const nan:0x8000000000000 - local.set $1 - local.get $1 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $1 - local.get $1 - f64.eq - i32.and - end + f64.const nan:0x8000000000000 + local.set $1 + local.get $1 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $1 + local.get $1 + f64.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -38881,20 +38667,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMath.signbit|inlined.7 (result i32) - f64.const nan:0x8000000000000 - f64.neg - local.set $1 - local.get $1 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $1 - local.get $1 - f64.eq - i32.and - end + f64.const nan:0x8000000000000 + f64.neg + local.set $1 + local.get $1 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $1 + local.get $1 + f64.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -38908,19 +38692,17 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMath.signbit|inlined.8 (result i32) - f64.const inf - local.set $1 - local.get $1 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $1 - local.get $1 - f64.eq - i32.and - end + f64.const inf + local.set $1 + local.get $1 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $1 + local.get $1 + f64.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -38934,20 +38716,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMath.signbit|inlined.9 (result i32) - f64.const inf - f64.neg - local.set $1 - local.get $1 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.get $1 - local.get $1 - f64.eq - i32.and - end + f64.const inf + f64.neg + local.set $1 + local.get $1 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.get $1 + local.get $1 + f64.eq + i32.and i32.const 0 i32.ne i32.const 1 @@ -38961,18 +38741,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMathf.signbit|inlined.2 (result i32) - f32.const 0 - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + f32.const 0 + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -38986,18 +38764,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMathf.signbit|inlined.3 (result i32) - f32.const -0 - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + f32.const -0 + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne i32.const 1 @@ -39011,18 +38787,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMathf.signbit|inlined.4 (result i32) - f32.const 1 - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + f32.const 1 + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -39036,18 +38810,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMathf.signbit|inlined.5 (result i32) - f32.const -1 - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + f32.const -1 + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne i32.const 1 @@ -39061,18 +38833,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMathf.signbit|inlined.6 (result i32) - f32.const nan:0x400000 - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + f32.const nan:0x400000 + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -39086,19 +38856,17 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMathf.signbit|inlined.7 (result i32) - f32.const nan:0x400000 - f32.neg - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + f32.const nan:0x400000 + f32.neg + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -39112,18 +38880,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMathf.signbit|inlined.8 (result i32) - f32.const inf - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + f32.const inf + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne i32.const 0 @@ -39137,19 +38903,17 @@ call $~lib/builtins/abort unreachable end - block $~lib/math/NativeMathf.signbit|inlined.9 (result i32) - f32.const inf - f32.neg - local.set $3 - local.get $3 - i32.reinterpret_f32 - i32.const 31 - i32.shr_u - local.get $3 - local.get $3 - f32.eq - i32.and - end + f32.const inf + f32.neg + local.set $3 + local.get $3 + i32.reinterpret_f32 + i32.const 31 + i32.shr_u + local.get $3 + local.get $3 + f32.eq + i32.and i32.const 0 i32.ne i32.const 1 @@ -47615,9 +47379,9 @@ unreachable end ) - (func $start (; 167 ;) (type $FUNCSIG$v) + (func $start (; 166 ;) (type $FUNCSIG$v) call $start:std/math ) - (func $null (; 168 ;) (type $FUNCSIG$v) + (func $null (; 167 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/mod.untouched.wat b/tests/compiler/std/mod.untouched.wat index b09b1c4a..857bd9e0 100644 --- a/tests/compiler/std/mod.untouched.wat +++ b/tests/compiler/std/mod.untouched.wat @@ -204,7 +204,6 @@ i64.sub local.set $4 br $continue|0 - unreachable end unreachable end @@ -507,7 +506,6 @@ i32.sub local.set $4 br $continue|0 - unreachable end unreachable end diff --git a/tests/compiler/std/new.untouched.wat b/tests/compiler/std/new.untouched.wat index d3182e92..7126f53a 100644 --- a/tests/compiler/std/new.untouched.wat +++ b/tests/compiler/std/new.untouched.wat @@ -110,24 +110,22 @@ ) (func $std/new/AClass#constructor (; 2 ;) (type $FUNCSIG$iif) (param $0 i32) (param $1 f32) (result i32) local.get $0 - block (result i32) - local.get $0 - i32.eqz - if - i32.const 8 - i32.const 3 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 - i32.const 1 - i32.store - local.get $0 - f32.const 2 - f32.store offset=4 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 8 + i32.const 3 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 + i32.const 1 + i32.store + local.get $0 + f32.const 2 + f32.store offset=4 + local.get $0 i32.load i32.const 1 i32.add diff --git a/tests/compiler/std/object-literal.untouched.wat b/tests/compiler/std/object-literal.untouched.wat index e4078e71..7bae1474 100644 --- a/tests/compiler/std/object-literal.untouched.wat +++ b/tests/compiler/std/object-literal.untouched.wat @@ -176,7 +176,6 @@ i32.add local.set $7 br $continue|0 - unreachable end unreachable end @@ -201,18 +200,14 @@ local.get $1 i32.eq if - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -225,18 +220,14 @@ i32.eq end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $0 call $~lib/string/String#get:length @@ -246,18 +237,14 @@ call $~lib/string/String#get:length i32.ne if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -355,44 +342,38 @@ global.set $~lib/rt/stub/startOffset global.get $~lib/rt/stub/startOffset global.set $~lib/rt/stub/offset - block (result i32) - i32.const 8 - i32.const 3 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - local.get $0 - i32.const 1 - i32.store - local.get $0 - i32.const 24 - i32.store offset=4 - local.get $0 - end + i32.const 8 + i32.const 3 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 + local.get $0 + i32.const 1 + i32.store + local.get $0 + i32.const 24 + i32.store offset=4 + local.get $0 call $std/object-literal/bar - block (result i32) - i32.const 4 - i32.const 4 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $1 - local.get $1 - i32.const 2 - i32.store - local.get $1 - end + i32.const 4 + i32.const 4 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $1 + local.get $1 + i32.const 2 + i32.store + local.get $1 call $std/object-literal/bar2 - block (result i32) - i32.const 4 - i32.const 4 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $2 - local.get $2 - i32.const 3 - i32.store - local.get $2 - end + i32.const 4 + i32.const 4 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $2 + local.get $2 + i32.const 3 + i32.store + local.get $2 call $std/object-literal/Foo2#test local.get $0 call $~lib/rt/stub/__release diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index dfedd2fd..67d1b850 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -656,7 +656,6 @@ unreachable end unreachable - unreachable end local.get $8 i32.const 1072693248 @@ -2729,24 +2728,22 @@ i32.const 2 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shl - block (result i32) - global.get $std/operator-overloading/shl - i32.const 3 - call $std/operator-overloading/Tester.shl - local.tee $11 - local.tee $12 - global.get $std/operator-overloading/sres - local.tee $13 - i32.ne - if - local.get $12 - call $~lib/rt/stub/__retain - drop - local.get $13 - call $~lib/rt/stub/__release - end + global.get $std/operator-overloading/shl + i32.const 3 + call $std/operator-overloading/Tester.shl + local.tee $11 + local.tee $12 + global.get $std/operator-overloading/sres + local.tee $13 + i32.ne + if local.get $12 + call $~lib/rt/stub/__retain + drop + local.get $13 + call $~lib/rt/stub/__release end + local.get $12 global.set $std/operator-overloading/sres global.get $std/operator-overloading/sres i32.load @@ -2922,23 +2919,21 @@ i32.const 1 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec - block (result i32) - global.get $std/operator-overloading/incdec - call $std/operator-overloading/Tester#inc - local.tee $15 - local.tee $16 - global.get $std/operator-overloading/incdec - local.tee $17 - i32.ne - if - local.get $16 - call $~lib/rt/stub/__retain - drop - local.get $17 - call $~lib/rt/stub/__release - end + global.get $std/operator-overloading/incdec + call $std/operator-overloading/Tester#inc + local.tee $15 + local.tee $16 + global.get $std/operator-overloading/incdec + local.tee $17 + i32.ne + if local.get $16 + call $~lib/rt/stub/__retain + drop + local.get $17 + call $~lib/rt/stub/__release end + local.get $16 global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec i32.load @@ -2961,23 +2956,21 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $std/operator-overloading/incdec - call $std/operator-overloading/Tester#dec - local.tee $16 - local.tee $17 - global.get $std/operator-overloading/incdec - local.tee $18 - i32.ne - if - local.get $17 - call $~lib/rt/stub/__retain - drop - local.get $18 - call $~lib/rt/stub/__release - end + global.get $std/operator-overloading/incdec + call $std/operator-overloading/Tester#dec + local.tee $16 + local.tee $17 + global.get $std/operator-overloading/incdec + local.tee $18 + i32.ne + if local.get $17 + call $~lib/rt/stub/__retain + drop + local.get $18 + call $~lib/rt/stub/__release end + local.get $17 global.set $std/operator-overloading/incdec global.get $std/operator-overloading/incdec i32.load @@ -3000,39 +2993,33 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 0 - i32.const 0 - i32.const 1 - call $std/operator-overloading/Tester#constructor - local.set $18 - global.get $std/operator-overloading/incdec - call $~lib/rt/stub/__release - local.get $18 - end + i32.const 0 + i32.const 0 + i32.const 1 + call $std/operator-overloading/Tester#constructor + local.set $18 + global.get $std/operator-overloading/incdec + call $~lib/rt/stub/__release + local.get $18 global.set $std/operator-overloading/incdec - block (result i32) - block (result i32) - global.get $std/operator-overloading/incdec - local.tee $18 - call $std/operator-overloading/Tester#postInc - local.tee $17 - local.tee $19 - global.get $std/operator-overloading/incdec - local.tee $20 - i32.ne - if - local.get $19 - call $~lib/rt/stub/__retain - drop - local.get $20 - call $~lib/rt/stub/__release - end - local.get $19 - end - global.set $std/operator-overloading/incdec - local.get $18 + global.get $std/operator-overloading/incdec + local.tee $18 + call $std/operator-overloading/Tester#postInc + local.tee $17 + local.tee $19 + global.get $std/operator-overloading/incdec + local.tee $20 + i32.ne + if + local.get $19 + call $~lib/rt/stub/__retain + drop + local.get $20 + call $~lib/rt/stub/__release end + local.get $19 + global.set $std/operator-overloading/incdec + local.get $18 call $~lib/rt/stub/__retain global.set $std/operator-overloading/tmp global.get $std/operator-overloading/tmp @@ -3077,42 +3064,36 @@ call $~lib/builtins/abort unreachable end - block (result i32) - block (result i32) - block (result i32) - global.get $std/operator-overloading/incdec - local.tee $18 - call $std/operator-overloading/Tester#postDec - local.tee $19 - local.tee $20 - global.get $std/operator-overloading/incdec - local.tee $21 - i32.ne - if - local.get $20 - call $~lib/rt/stub/__retain - drop - local.get $21 - call $~lib/rt/stub/__release - end - local.get $20 - end - global.set $std/operator-overloading/incdec - local.get $18 - end - local.tee $21 - global.get $std/operator-overloading/tmp - local.tee $18 - i32.ne - if - local.get $21 - call $~lib/rt/stub/__retain - drop - local.get $18 - call $~lib/rt/stub/__release - end + global.get $std/operator-overloading/incdec + local.tee $18 + call $std/operator-overloading/Tester#postDec + local.tee $19 + local.tee $20 + global.get $std/operator-overloading/incdec + local.tee $21 + i32.ne + if + local.get $20 + call $~lib/rt/stub/__retain + drop local.get $21 + call $~lib/rt/stub/__release end + local.get $20 + global.set $std/operator-overloading/incdec + local.get $18 + local.tee $21 + global.get $std/operator-overloading/tmp + local.tee $18 + i32.ne + if + local.get $21 + call $~lib/rt/stub/__retain + drop + local.get $18 + call $~lib/rt/stub/__release + end + local.get $21 global.set $std/operator-overloading/tmp global.get $std/operator-overloading/tmp i32.load @@ -3161,23 +3142,21 @@ i32.const 2 call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 - block (result i32) - global.get $std/operator-overloading/ais1 - call $std/operator-overloading/TesterInlineStatic.postInc - local.tee $21 - local.tee $20 - global.get $std/operator-overloading/ais1 - local.tee $18 - i32.ne - if - local.get $20 - call $~lib/rt/stub/__retain - drop - local.get $18 - call $~lib/rt/stub/__release - end + global.get $std/operator-overloading/ais1 + call $std/operator-overloading/TesterInlineStatic.postInc + local.tee $21 + local.tee $20 + global.get $std/operator-overloading/ais1 + local.tee $18 + i32.ne + if local.get $20 + call $~lib/rt/stub/__retain + drop + local.get $18 + call $~lib/rt/stub/__release end + local.get $20 global.set $std/operator-overloading/ais1 i32.const 0 i32.const 2 @@ -3216,23 +3195,21 @@ i32.const 2 call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii1 - block (result i32) - global.get $std/operator-overloading/aii1 - call $std/operator-overloading/TesterInlineInstance#postInc - local.tee $18 - local.tee $22 - global.get $std/operator-overloading/aii1 - local.tee $23 - i32.ne - if - local.get $22 - call $~lib/rt/stub/__retain - drop - local.get $23 - call $~lib/rt/stub/__release - end + global.get $std/operator-overloading/aii1 + call $std/operator-overloading/TesterInlineInstance#postInc + local.tee $18 + local.tee $22 + global.get $std/operator-overloading/aii1 + local.tee $23 + i32.ne + if local.get $22 + call $~lib/rt/stub/__retain + drop + local.get $23 + call $~lib/rt/stub/__release end + local.get $22 global.set $std/operator-overloading/aii1 i32.const 0 i32.const 2 diff --git a/tests/compiler/std/pointer.untouched.wat b/tests/compiler/std/pointer.untouched.wat index 05497772..cc13408c 100644 --- a/tests/compiler/std/pointer.untouched.wat +++ b/tests/compiler/std/pointer.untouched.wat @@ -327,7 +327,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -349,22 +348,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -372,7 +367,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -430,7 +424,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -497,22 +490,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -544,226 +533,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -771,15 +612,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -787,15 +628,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -803,10 +644,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -822,65 +663,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -888,15 +734,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -904,15 +750,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -920,10 +766,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -939,307 +785,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1247,148 +1133,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1396,76 +1250,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1473,40 +1311,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1514,22 +1344,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1601,26 +1427,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -1648,7 +1469,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -1658,22 +1478,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -1681,7 +1497,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -1720,7 +1535,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -1744,7 +1558,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -1766,7 +1579,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -1812,29 +1624,23 @@ (local $5 i32) (local $6 i32) (local $7 f32) - block $std/pointer/Pointer#constructor|inlined.0 (result i32) - i32.const 0 - local.set $1 - i32.const 8 - local.set $0 - local.get $0 - call $~lib/rt/stub/__retain - end + i32.const 0 + local.set $1 + i32.const 8 + local.set $0 + local.get $0 + call $~lib/rt/stub/__retain global.set $std/pointer/one - block $std/pointer/Pointer#constructor|inlined.1 (result i32) - i32.const 0 - local.set $1 - i32.const 24 - local.set $0 - local.get $0 - call $~lib/rt/stub/__retain - end + i32.const 0 + local.set $1 + i32.const 24 + local.set $0 + local.get $0 + call $~lib/rt/stub/__retain global.set $std/pointer/two - block $std/pointer/Pointer#get:offset|inlined.0 (result i32) - global.get $std/pointer/one - local.set $0 - local.get $0 - end + global.get $std/pointer/one + local.set $0 + local.get $0 i32.const 8 i32.eq i32.eqz @@ -1846,11 +1652,9 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:offset|inlined.1 (result i32) - global.get $std/pointer/two - local.set $1 - local.get $1 - end + global.get $std/pointer/two + local.set $1 + local.get $1 i32.const 24 i32.eq i32.eqz @@ -1920,11 +1724,9 @@ local.tee $1 call $~lib/rt/stub/__retain global.set $std/pointer/add - block $std/pointer/Pointer#get:offset|inlined.2 (result i32) - global.get $std/pointer/add - local.set $0 - local.get $0 - end + global.get $std/pointer/add + local.set $0 + local.get $0 i32.const 32 i32.eq i32.eqz @@ -1942,11 +1744,9 @@ local.tee $0 call $~lib/rt/stub/__retain global.set $std/pointer/sub - block $std/pointer/Pointer#get:offset|inlined.3 (result i32) - global.get $std/pointer/sub - local.set $2 - local.get $2 - end + global.get $std/pointer/sub + local.set $2 + local.get $2 i32.const 16 i32.eq i32.eqz @@ -1958,11 +1758,9 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:offset|inlined.4 (result i32) - global.get $std/pointer/one - local.set $2 - local.get $2 - end + global.get $std/pointer/one + local.set $2 + local.get $2 i32.const 8 i32.eq i32.eqz @@ -1974,27 +1772,23 @@ call $~lib/builtins/abort unreachable end - block (result i32) - block (result i32) - global.get $std/pointer/one - call $std/pointer/Pointer#inc - local.tee $2 - local.tee $3 - global.get $std/pointer/one - local.tee $4 - i32.ne - if - local.get $3 - call $~lib/rt/stub/__retain - drop - local.get $4 - call $~lib/rt/stub/__release - end - local.get $3 - end - global.set $std/pointer/one - global.get $std/pointer/one + global.get $std/pointer/one + call $std/pointer/Pointer#inc + local.tee $2 + local.tee $3 + global.get $std/pointer/one + local.tee $4 + i32.ne + if + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release end + local.get $3 + global.set $std/pointer/one + global.get $std/pointer/one call $~lib/rt/stub/__retain global.set $std/pointer/nextOne global.get $std/pointer/nextOne @@ -2009,11 +1803,9 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:offset|inlined.5 (result i32) - global.get $std/pointer/one - local.set $4 - local.get $4 - end + global.get $std/pointer/one + local.set $4 + local.get $4 i32.const 16 i32.eq i32.eqz @@ -2025,11 +1817,9 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get:offset|inlined.6 (result i32) - global.get $std/pointer/two - local.set $3 - local.get $3 - end + global.get $std/pointer/two + local.set $3 + local.get $3 i32.const 24 i32.eq i32.eqz @@ -2041,47 +1831,41 @@ call $~lib/builtins/abort unreachable end - block (result i32) - global.get $std/pointer/two - call $std/pointer/Pointer#dec - local.tee $3 - local.tee $4 - global.get $std/pointer/two - local.tee $5 - i32.ne - if - local.get $4 - call $~lib/rt/stub/__retain - drop - local.get $5 - call $~lib/rt/stub/__release - end + global.get $std/pointer/two + call $std/pointer/Pointer#dec + local.tee $3 + local.tee $4 + global.get $std/pointer/two + local.tee $5 + i32.ne + if local.get $4 - end - global.set $std/pointer/two - block (result i32) - global.get $std/pointer/two - call $std/pointer/Pointer#dec - local.tee $4 - local.tee $5 - global.get $std/pointer/two - local.tee $6 - i32.ne - if - local.get $5 - call $~lib/rt/stub/__retain - drop - local.get $6 - call $~lib/rt/stub/__release - end + call $~lib/rt/stub/__retain + drop local.get $5 + call $~lib/rt/stub/__release end + local.get $4 global.set $std/pointer/two - block $std/pointer/Pointer#get:offset|inlined.7 (result i32) - global.get $std/pointer/two - local.set $6 + global.get $std/pointer/two + call $std/pointer/Pointer#dec + local.tee $4 + local.tee $5 + global.get $std/pointer/two + local.tee $6 + i32.ne + if + local.get $5 + call $~lib/rt/stub/__retain + drop local.get $6 + call $~lib/rt/stub/__release end + local.get $5 + global.set $std/pointer/two + global.get $std/pointer/two + local.set $6 + local.get $6 i32.const 8 i32.eq i32.eqz @@ -2137,16 +1921,12 @@ br $std/pointer/Pointer#get:value|inlined.6 end call $std/pointer/Pointer#set:value - block $std/pointer/Pointer#get:offset|inlined.8 (result i32) - global.get $std/pointer/one - local.set $6 - local.get $6 - end - block $std/pointer/Pointer#get:offset|inlined.9 (result i32) - global.get $std/pointer/two - local.set $5 - local.get $5 - end + global.get $std/pointer/one + local.set $6 + local.get $6 + global.get $std/pointer/two + local.set $5 + local.get $5 i32.ne i32.eqz if @@ -2193,14 +1973,12 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#constructor|inlined.0 (result i32) - i32.const 0 - local.set $5 - i32.const 0 - local.set $6 - local.get $6 - call $~lib/rt/stub/__retain - end + i32.const 0 + local.set $5 + i32.const 0 + local.set $6 + local.get $6 + call $~lib/rt/stub/__retain global.set $std/pointer/buf global.get $std/pointer/buf i32.const 0 @@ -2210,18 +1988,16 @@ i32.const 1 f32.const 1.2000000476837158 call $std/pointer/Pointer#set - block $std/pointer/Pointer#get|inlined.0 (result f32) - global.get $std/pointer/buf - local.set $5 - i32.const 0 - local.set $6 - local.get $5 - local.get $6 - i32.const 4 - i32.mul - i32.add - f32.load - end + global.get $std/pointer/buf + local.set $5 + i32.const 0 + local.set $6 + local.get $5 + local.get $6 + i32.const 4 + i32.mul + i32.add + f32.load f32.const 1.100000023841858 f32.eq i32.eqz @@ -2233,18 +2009,16 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get|inlined.1 (result f32) - global.get $std/pointer/buf - local.set $5 - i32.const 1 - local.set $6 - local.get $5 - local.get $6 - i32.const 4 - i32.mul - i32.add - f32.load - end + global.get $std/pointer/buf + local.set $5 + i32.const 1 + local.set $6 + local.get $5 + local.get $6 + i32.const 4 + i32.mul + i32.add + f32.load f32.const 1.2000000476837158 f32.eq i32.eqz @@ -2256,18 +2030,16 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get|inlined.2 (result f32) - global.get $std/pointer/buf - local.set $5 - i32.const 0 - local.set $6 - local.get $5 - local.get $6 - i32.const 4 - i32.mul - i32.add - f32.load - end + global.get $std/pointer/buf + local.set $5 + i32.const 0 + local.set $6 + local.get $5 + local.get $6 + i32.const 4 + i32.mul + i32.add + f32.load f32.const 1.100000023841858 f32.eq i32.eqz @@ -2279,18 +2051,16 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get|inlined.3 (result f32) - global.get $std/pointer/buf - local.set $5 - i32.const 1 - local.set $6 - local.get $5 - local.get $6 - i32.const 4 - i32.mul - i32.add - f32.load - end + global.get $std/pointer/buf + local.set $5 + i32.const 1 + local.set $6 + local.get $5 + local.get $6 + i32.const 4 + i32.mul + i32.add + f32.load f32.const 1.2000000476837158 f32.eq i32.eqz @@ -2328,33 +2098,29 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#set|inlined.0 - global.get $std/pointer/buf - local.set $5 - i32.const 2 - local.set $6 - f32.const 1.2999999523162842 - local.set $7 - local.get $5 - local.get $6 - i32.const 4 - i32.mul - i32.add - local.get $7 - f32.store - end - block $std/pointer/Pointer#get|inlined.4 (result f32) - global.get $std/pointer/buf - local.set $5 - i32.const 2 - local.set $6 - local.get $5 - local.get $6 - i32.const 4 - i32.mul - i32.add - f32.load - end + global.get $std/pointer/buf + local.set $5 + i32.const 2 + local.set $6 + f32.const 1.2999999523162842 + local.set $7 + local.get $5 + local.get $6 + i32.const 4 + i32.mul + i32.add + local.get $7 + f32.store + global.get $std/pointer/buf + local.set $5 + i32.const 2 + local.set $6 + local.get $5 + local.get $6 + i32.const 4 + i32.mul + i32.add + f32.load f32.const 1.2999999523162842 f32.eq i32.eqz @@ -2366,18 +2132,16 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#get|inlined.5 (result f32) - global.get $std/pointer/buf - local.set $5 - i32.const 2 - local.set $6 - local.get $5 - local.get $6 - i32.const 4 - i32.mul - i32.add - f32.load - end + global.get $std/pointer/buf + local.set $5 + i32.const 2 + local.set $6 + local.get $5 + local.get $6 + i32.const 4 + i32.mul + i32.add + f32.load f32.const 1.2999999523162842 f32.eq i32.eqz diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 6b9c8bdc..a9d9e3bb 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -1157,14 +1157,12 @@ i32.and local.tee $1 i32.sub - local.set $2 local.get $0 local.get $1 i32.add local.tee $0 i32.const 0 i32.store - local.get $2 i32.const -4 i32.and local.tee $1 diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index 47679f29..81a775de 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -165,85 +165,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -299,20 +291,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -350,20 +340,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -374,14 +362,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -534,24 +520,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -565,27 +549,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -594,36 +576,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -661,12 +639,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -763,15 +739,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -831,15 +805,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -849,21 +821,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -873,33 +843,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -908,7 +875,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -937,19 +903,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 72 - i32.const 24 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 72 + i32.const 24 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1046,18 +1004,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1090,18 +1046,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1113,29 +1067,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1153,7 +1084,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1274,34 +1224,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1718,7 +1664,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -1730,19 +1675,11 @@ i32.const 1073741808 i32.gt_u if - block - block - i32.const 176 - i32.const 224 - i32.const 56 - i32.const 42 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 176 + i32.const 224 + i32.const 56 + i32.const 42 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1794,19 +1731,11 @@ i32.load i32.gt_u if - block - block - i32.const 280 - i32.const 336 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 280 + i32.const 336 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1834,22 +1763,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1857,7 +1782,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1915,7 +1839,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1982,22 +1905,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2029,226 +1948,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -2256,15 +2027,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -2272,15 +2043,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -2288,10 +2059,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2307,65 +2078,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2373,15 +2149,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2389,15 +2165,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2405,10 +2181,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2424,307 +2200,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2732,148 +2548,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2881,76 +2665,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2958,40 +2726,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2999,22 +2759,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -3086,26 +2842,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -3133,7 +2884,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -3143,22 +2893,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -3166,7 +2912,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -3205,7 +2950,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -3229,7 +2973,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -3251,7 +2994,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3493,16 +3235,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -3511,16 +3251,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -3533,36 +3271,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 3 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 3 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -3620,7 +3356,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -3675,9 +3410,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 8 - end + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -3687,9 +3420,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 8 - end + i32.const 8 i32.mul i32.add local.set $7 @@ -3741,63 +3472,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -3866,19 +3588,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 8 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + i32.const 8 i32.mul i32.add local.set $4 @@ -4038,7 +3756,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -4096,7 +3813,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -4156,7 +3872,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -4232,7 +3947,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -4272,16 +3986,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -4290,16 +4002,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -4312,36 +4022,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 4 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 4 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -4390,7 +4098,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -4443,9 +4150,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 8 - end + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -4455,9 +4160,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 8 - end + i32.const 8 i32.mul i32.add local.set $7 @@ -4509,63 +4212,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -4632,19 +4326,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 8 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + i32.const 8 i32.mul i32.add local.set $4 @@ -4802,7 +4492,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -4860,7 +4549,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -4920,7 +4608,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -4996,7 +4683,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -5036,16 +4722,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -5054,16 +4738,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -5076,36 +4758,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 5 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 5 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -5178,7 +4858,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -5233,9 +4912,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 8 - end + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -5245,9 +4922,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 8 - end + i32.const 8 i32.mul i32.add local.set $7 @@ -5299,63 +4974,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -5424,19 +5090,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 8 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + i32.const 8 i32.mul i32.add local.set $4 @@ -5596,7 +5258,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -5654,7 +5315,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -5714,7 +5374,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -5790,7 +5449,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -5830,16 +5488,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -5848,16 +5504,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -5870,36 +5524,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 6 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 6 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -5948,7 +5600,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -6001,9 +5652,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 8 - end + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -6013,9 +5662,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 8 - end + i32.const 8 i32.mul i32.add local.set $7 @@ -6067,63 +5714,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -6190,19 +5828,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 8 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + i32.const 8 i32.mul i32.add local.set $4 @@ -6360,7 +5994,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -6418,7 +6051,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -6478,7 +6110,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -6554,7 +6185,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -6594,16 +6224,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -6612,16 +6240,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -6634,36 +6260,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 67 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 7 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 7 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -6752,7 +6376,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -6803,9 +6426,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 8 - end + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -6815,9 +6436,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 8 - end + i32.const 8 i32.mul i32.add local.set $7 @@ -6869,63 +6488,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -6990,19 +6600,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 8 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + i32.const 8 i32.mul i32.add local.set $4 @@ -7158,7 +6764,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -7216,7 +6821,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -7276,7 +6880,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -7352,7 +6955,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -7392,16 +6994,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -7410,16 +7010,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -7432,36 +7030,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 77 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 8 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 8 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -7508,7 +7104,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -7559,9 +7154,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 8 - end + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -7571,9 +7164,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 8 - end + i32.const 8 i32.mul i32.add local.set $7 @@ -7625,63 +7216,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -7746,19 +7328,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 8 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $2 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + i32.const 8 i32.mul i32.add local.set $4 @@ -7914,7 +7492,6 @@ i32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -7972,7 +7549,6 @@ i32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -8032,7 +7608,6 @@ i32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -8108,7 +7683,6 @@ i32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -8148,16 +7722,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -8166,16 +7738,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -8188,36 +7758,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 86 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 9 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 9 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -8352,7 +7920,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -8404,9 +7971,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 16 - end + i32.const 16 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -8416,9 +7981,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 16 - end + i32.const 16 i32.mul i32.add local.set $7 @@ -8470,63 +8033,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $12 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $12 i32.store offset=8 local.get $0 local.get $4 @@ -8592,19 +8146,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 16 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + i32.const 16 i32.mul i32.add local.set $4 @@ -8761,7 +8311,6 @@ i64.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -8819,7 +8368,6 @@ i64.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -8879,7 +8427,6 @@ i64.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -8955,7 +8502,6 @@ i64.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -8995,16 +8541,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -9013,16 +8557,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -9035,36 +8577,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 96 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 10 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 10 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -9111,7 +8651,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -9163,9 +8702,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 16 - end + i32.const 16 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -9175,9 +8712,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 16 - end + i32.const 16 i32.mul i32.add local.set $7 @@ -9229,63 +8764,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $12 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $12 i32.store offset=8 local.get $0 local.get $4 @@ -9351,19 +8877,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 16 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + i32.const 16 i32.mul i32.add local.set $4 @@ -9520,7 +9042,6 @@ i64.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -9578,7 +9099,6 @@ i64.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -9638,7 +9158,6 @@ i64.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -9714,7 +9233,6 @@ i64.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -9754,16 +9272,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -9772,16 +9288,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -9794,36 +9308,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 105 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 11 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 11 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -9870,7 +9382,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -9923,9 +9434,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 8 - end + i32.const 8 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -9935,9 +9444,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 8 - end + i32.const 8 i32.mul i32.add local.set $7 @@ -9990,63 +9497,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - end + i32.const 8 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $12 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $12 i32.store offset=8 local.get $0 local.get $4 @@ -10113,19 +9611,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 8 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + i32.const 8 i32.mul i32.add local.set $4 @@ -10283,7 +9777,6 @@ f32.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -10341,7 +9834,6 @@ f32.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -10401,7 +9893,6 @@ f32.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -10477,7 +9968,6 @@ f32.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -10517,16 +10007,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/pure/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/pure/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -10535,16 +10023,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/pure/__release - local.get $1 - end + i32.const 0 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/pure/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -10557,36 +10043,34 @@ i32.store offset=20 ) (func $~lib/set/Set#constructor (; 114 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 12 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 12 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/set/Set#clear local.get $0 ) @@ -10633,7 +10117,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -10686,9 +10169,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) - i32.const 16 - end + i32.const 16 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -10698,9 +10179,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/set/ENTRY_SIZE|inlined.2 (result i32) - i32.const 16 - end + i32.const 16 i32.mul i32.add local.set $7 @@ -10753,63 +10232,54 @@ local.get $8 i32.store local.get $8 - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $8 end local.get $6 - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 16 - end + i32.const 16 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/pure/__retain - drop - local.get $9 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/pure/__retain + drop + local.get $9 + call $~lib/rt/pure/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $12 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $12 - call $~lib/rt/pure/__retain - drop - local.get $10 - call $~lib/rt/pure/__release - end + local.get $5 + local.tee $12 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $12 + call $~lib/rt/pure/__retain + drop + local.get $10 + call $~lib/rt/pure/__release end + local.get $12 i32.store offset=8 local.get $0 local.get $4 @@ -10876,19 +10346,15 @@ end local.get $0 i32.load offset=8 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - end - block $~lib/set/ENTRY_SIZE|inlined.5 (result i32) - i32.const 16 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + i32.const 16 i32.mul i32.add local.set $4 @@ -11046,7 +10512,6 @@ f64.add local.set $1 br $loop|0 - unreachable end unreachable end @@ -11104,7 +10569,6 @@ f64.add local.set $1 br $loop|1 - unreachable end unreachable end @@ -11164,7 +10628,6 @@ f64.add local.set $1 br $loop|2 - unreachable end unreachable end @@ -11240,7 +10703,6 @@ f64.add local.set $1 br $loop|3 - unreachable end unreachable end @@ -11453,103 +10915,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -11695,240 +11137,88 @@ ) (func $~lib/rt/__visit_members (; 139 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$14 - block $switch$1$case$13 - block $switch$1$case$12 - block $switch$1$case$11 - block $switch$1$case$10 - block $switch$1$case$9 - block $switch$1$case$8 - block $switch$1$case$7 - block $switch$1$case$6 - block $switch$1$case$5 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$7 $switch$1$case$8 $switch$1$case$9 $switch$1$case$10 $switch$1$case$11 $switch$1$case$12 $switch$1$case$13 $switch$1$case$14 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/pure/__visit - end - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block - local.get $0 - local.get $1 - call $~lib/set/Set#__visit_impl - return - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block + block $switch$1$default + block $switch$1$case$14 + block $switch$1$case$13 + block $switch$1$case$12 + block $switch$1$case$11 + block $switch$1$case$10 + block $switch$1$case$9 + block $switch$1$case$8 + block $switch$1$case$7 + block $switch$1$case$6 + block $switch$1$case$5 + block $switch$1$case$4 + block $switch$1$case$2 local.get $0 - local.get $1 - call $~lib/set/Set#__visit_impl - return - unreachable + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$7 $switch$1$case$8 $switch$1$case$9 $switch$1$case$10 $switch$1$case$11 $switch$1$case$12 $switch$1$case$13 $switch$1$case$14 $switch$1$default end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block - local.get $0 - local.get $1 - call $~lib/set/Set#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 - local.get $1 - call $~lib/set/Set#__visit_impl + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/set/Set#__visit_impl + call $~lib/set/Set#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/set/Set#__visit_impl + call $~lib/set/Set#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/set/Set#__visit_impl + call $~lib/set/Set#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/set/Set#__visit_impl + call $~lib/set/Set#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/set/Set#__visit_impl + call $~lib/set/Set#__visit_impl return - unreachable end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - block local.get $0 local.get $1 - call $~lib/set/Set#__visit_impl + call $~lib/set/Set#__visit_impl return - unreachable end - unreachable - unreachable + local.get $0 + local.get $1 + call $~lib/set/Set#__visit_impl + return end - unreachable - unreachable + local.get $0 + local.get $1 + call $~lib/set/Set#__visit_impl + return end - unreachable + local.get $0 + local.get $1 + call $~lib/set/Set#__visit_impl + return end - block - block - unreachable - unreachable - end - unreachable - unreachable - end - unreachable + local.get $0 + local.get $1 + call $~lib/set/Set#__visit_impl + return end + unreachable ) (func $null (; 140 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 0443e42c..d6ee5eb7 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -399,14 +399,12 @@ i32.and local.tee $1 i32.sub - local.set $2 local.get $0 local.get $1 i32.add local.tee $0 i32.const 0 i32.store - local.get $2 i32.const -4 i32.and local.tee $1 diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index ccf37fd5..4544b9dd 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -57,19 +57,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 320 - i32.const 376 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 320 + i32.const 376 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -184,22 +176,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -207,7 +195,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -265,7 +252,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -332,22 +318,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -379,226 +361,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -606,15 +440,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -622,15 +456,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -638,10 +472,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -657,65 +491,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -723,15 +562,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -739,15 +578,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -755,10 +594,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -774,307 +613,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1082,148 +961,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1231,76 +1078,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1308,40 +1139,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1349,22 +1172,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1436,26 +1255,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -1483,7 +1297,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -1493,22 +1306,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -1516,7 +1325,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -1555,7 +1363,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -1579,7 +1386,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -1601,7 +1407,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -1900,7 +1705,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -1929,19 +1733,11 @@ i32.shr_u i32.gt_u if - block - block - i32.const 424 - i32.const 376 - i32.const 14 - i32.const 47 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 424 + i32.const 376 + i32.const 14 + i32.const 47 + call $~lib/builtins/abort unreachable end local.get $0 @@ -2037,19 +1833,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 320 - i32.const 376 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 320 + i32.const 376 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -2113,19 +1901,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 320 - i32.const 376 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 320 + i32.const 376 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -2189,19 +1969,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 320 - i32.const 376 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 320 + i32.const 376 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 diff --git a/tests/compiler/std/string-utf8.untouched.wat b/tests/compiler/std/string-utf8.untouched.wat index 0e382809..97e5333c 100644 --- a/tests/compiler/std/string-utf8.untouched.wat +++ b/tests/compiler/std/string-utf8.untouched.wat @@ -139,7 +139,6 @@ end end br $continue|0 - unreachable end unreachable end @@ -443,7 +442,6 @@ end end br $continue|0 - unreachable end unreachable end @@ -473,22 +471,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -496,7 +490,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -554,7 +547,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -621,22 +613,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -668,226 +656,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -895,15 +735,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -911,15 +751,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -927,10 +767,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -946,65 +786,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -1012,15 +857,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -1028,15 +873,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -1044,10 +889,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -1063,307 +908,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1371,148 +1256,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1520,76 +1373,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1597,40 +1434,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1638,22 +1467,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1725,26 +1550,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -1772,7 +1592,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -1782,22 +1601,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -1805,7 +1620,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -1844,7 +1658,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -1868,7 +1681,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -1890,7 +1702,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -1933,14 +1744,12 @@ i32.eqz br_if $break|0 local.get $0 - block (result i32) - local.get $2 - local.tee $5 - i32.const 1 - i32.add - local.set $2 - local.get $5 - end + local.get $2 + local.tee $5 + i32.const 1 + i32.add + local.set $2 + local.get $5 i32.add i32.load8_u local.set $5 @@ -1992,14 +1801,12 @@ i32.const 6 i32.shl local.get $0 - block (result i32) - local.get $2 - local.tee $6 - i32.const 1 - i32.add - local.set $2 - local.get $6 - end + local.get $2 + local.tee $6 + i32.const 1 + i32.add + local.set $2 + local.get $6 i32.add i32.load8_u i32.const 63 @@ -2042,14 +1849,12 @@ i32.const 18 i32.shl local.get $0 - block (result i32) - local.get $2 - local.tee $6 - i32.const 1 - i32.add - local.set $2 - local.get $6 - end + local.get $2 + local.tee $6 + i32.const 1 + i32.add + local.set $2 + local.get $6 i32.add i32.load8_u i32.const 63 @@ -2058,14 +1863,12 @@ i32.shl i32.or local.get $0 - block (result i32) - local.get $2 - local.tee $6 - i32.const 1 - i32.add - local.set $2 - local.get $6 - end + local.get $2 + local.tee $6 + i32.const 1 + i32.add + local.set $2 + local.get $6 i32.add i32.load8_u i32.const 63 @@ -2074,14 +1877,12 @@ i32.shl i32.or local.get $0 - block (result i32) - local.get $2 - local.tee $6 - i32.const 1 - i32.add - local.set $2 - local.get $6 - end + local.get $2 + local.tee $6 + i32.const 1 + i32.add + local.set $2 + local.get $6 i32.add i32.load8_u i32.const 63 @@ -2140,14 +1941,12 @@ i32.const 12 i32.shl local.get $0 - block (result i32) - local.get $2 - local.tee $6 - i32.const 1 - i32.add - local.set $2 - local.get $6 - end + local.get $2 + local.tee $6 + i32.const 1 + i32.add + local.set $2 + local.get $6 i32.add i32.load8_u i32.const 63 @@ -2156,14 +1955,12 @@ i32.shl i32.or local.get $0 - block (result i32) - local.get $2 - local.tee $6 - i32.const 1 - i32.add - local.set $2 - local.get $6 - end + local.get $2 + local.tee $6 + i32.const 1 + i32.add + local.set $2 + local.get $6 i32.add i32.load8_u i32.const 63 @@ -2178,7 +1975,6 @@ end end br $continue|0 - unreachable end unreachable end @@ -2264,7 +2060,6 @@ i32.add local.set $7 br $continue|0 - unreachable end unreachable end @@ -2289,18 +2084,14 @@ local.get $1 i32.eq if - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -2313,18 +2104,14 @@ i32.eq end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $0 call $~lib/string/String#get:length @@ -2334,18 +2121,14 @@ call $~lib/string/String#get:length i32.ne if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $0 i32.const 0 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 973158ba..958507bf 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -15,7 +15,6 @@ (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) - (type $FUNCSIG$ji (func (param i32) (result i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) @@ -1689,10 +1688,8 @@ else i32.const 1 end - local.set $1 local.get $0 call $~lib/rt/pure/__release - local.get $1 ) (func $~lib/string/String.fromCharCode (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1834,12 +1831,10 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 return end local.get $0 @@ -1948,10 +1943,8 @@ local.get $3 call $~lib/util/string/compareImpl i32.eqz - local.set $0 i32.const 528 call $~lib/rt/pure/__release - local.get $0 ) (func $~lib/string/String#endsWith (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) @@ -1996,10 +1989,8 @@ local.get $1 call $~lib/util/string/compareImpl i32.eqz - local.set $0 i32.const 576 call $~lib/rt/pure/__release - local.get $0 ) (func $~lib/string/String#indexOf (; 34 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2144,10 +2135,8 @@ if local.get $0 call $~lib/rt/pure/__retain - local.set $0 local.get $2 call $~lib/rt/pure/__release - local.get $0 return end local.get $3 @@ -2197,10 +2186,8 @@ call $~lib/memory/memory.copy local.get $1 call $~lib/rt/pure/__retain - local.set $0 local.get $2 call $~lib/rt/pure/__release - local.get $0 ) (func $~lib/string/String#padEnd (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2245,10 +2232,8 @@ if local.get $0 call $~lib/rt/pure/__retain - local.set $0 local.get $2 call $~lib/rt/pure/__release - local.get $0 return end local.get $5 @@ -2300,10 +2285,8 @@ end local.get $1 call $~lib/rt/pure/__retain - local.set $0 local.get $2 call $~lib/rt/pure/__release - local.get $0 ) (func $~lib/string/String#lastIndexOf (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2318,10 +2301,8 @@ if local.get $0 call $~lib/string/String#get:length - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 return end local.get $0 @@ -2508,7 +2489,6 @@ end f64.const 1 end - local.set $6 local.get $3 i32.const 2 i32.gt_s @@ -2668,7 +2648,6 @@ end local.get $0 call $~lib/rt/pure/__release - local.get $6 local.get $5 f64.mul return @@ -2684,10 +2663,8 @@ drop local.get $0 call $~lib/util/string/strtol - local.set $1 local.get $0 call $~lib/rt/pure/__release - local.get $1 ) (func $~lib/util/string/strtod (; 42 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) @@ -2769,7 +2746,6 @@ end f64.const 1 end - local.set $6 loop $continue|1 block $break|1 local.get $3 @@ -2872,7 +2848,6 @@ end local.get $0 call $~lib/rt/pure/__release - local.get $6 local.get $4 f64.mul return @@ -2888,10 +2863,8 @@ drop local.get $0 call $~lib/util/string/strtod - local.set $1 local.get $0 call $~lib/rt/pure/__release - local.get $1 ) (func $~lib/string/String#concat (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2932,10 +2905,8 @@ if i32.const 120 call $~lib/rt/pure/__retain - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 return end local.get $2 @@ -2970,12 +2941,10 @@ select local.get $1 call $~lib/string/String#concat - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 ) (func $~lib/string/String.__ne (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2989,12 +2958,10 @@ local.get $1 call $~lib/string/String.__eq i32.eqz - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 ) (func $~lib/string/String.__gt (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3053,12 +3020,10 @@ call $~lib/util/string/compareImpl i32.const 0 i32.gt_s - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 return end local.get $0 @@ -3123,12 +3088,10 @@ call $~lib/util/string/compareImpl i32.const 0 i32.lt_s - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 return end local.get $0 @@ -3149,12 +3112,10 @@ local.get $1 call $~lib/string/String.__lt i32.eqz - local.set $2 local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $2 ) (func $~lib/string/String.__lte (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) @@ -3168,12 +3129,10 @@ local.get $0 call $~lib/string/String.__gt i32.eqz - local.set $1 i32.const 120 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $1 ) (func $~lib/string/String#repeat (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3570,14 +3529,12 @@ i32.and local.tee $1 i32.sub - local.set $2 local.get $0 local.get $1 i32.add local.tee $0 i32.const 0 i32.store - local.get $2 i32.const -4 i32.and local.tee $1 @@ -4008,10 +3965,8 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain end - local.set $0 local.get $1 call $~lib/rt/pure/__release - local.get $0 return end local.get $1 @@ -4330,21 +4285,19 @@ call $~lib/rt/pure/__retain return end - block (result i32) - local.get $0 + local.get $0 + i64.const 0 + i64.lt_s + local.tee $1 + if i64.const 0 - i64.lt_s - local.tee $1 - if - i64.const 0 - local.get $0 - i64.sub - local.set $0 - end local.get $0 - i64.const 4294967295 - i64.le_u + i64.sub + local.set $0 end + local.get $0 + i64.const 4294967295 + i64.le_u if local.get $0 i32.wrap_i64 @@ -4385,53 +4338,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 69 ;) (type $FUNCSIG$ji) (param $0 i32) (result i64) - local.get $0 - i32.const 4576 - i32.load - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 232 - i32.const 2304 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - end - i32.const 4572 - i32.load - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - ) - (func $~lib/array/Array#__get (; 70 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - local.get $0 - i32.const 4800 - i32.load - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 232 - i32.const 2304 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - end - i32.const 4796 - i32.load - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - ) - (func $~lib/util/number/genDigits (; 71 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 69 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i32) (local $9 i64) @@ -4830,7 +4737,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -4985,23 +4892,21 @@ i32.const 4 i32.add local.tee $0 - block (result i32) - local.get $3 - i32.const 1 - i32.sub - local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + local.tee $1 + if i32.const 0 - i32.lt_s - local.tee $1 - if - i32.const 0 - local.get $2 - i32.sub - local.set $2 - end local.get $2 + i32.sub + local.set $2 end local.get $2 + local.get $2 call $~lib/util/number/decimalCount32 i32.const 1 i32.add @@ -5043,23 +4948,21 @@ i32.const 4 i32.add local.tee $2 - block (result i32) - local.get $3 - i32.const 1 - i32.sub - local.tee $0 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end local.get $0 + i32.sub + local.set $0 end local.get $0 + local.get $0 call $~lib/util/number/decimalCount32 i32.const 1 i32.add @@ -5081,37 +4984,30 @@ end end ) - (func $~lib/util/number/dtoa_core (; 73 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 71 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) - (local $5 i32) + (local $5 i64) (local $6 i64) - (local $7 i64) + (local $7 i32) (local $8 i64) - (local $9 i32) + (local $9 i64) (local $10 i32) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - (local $16 i64) - (local $17 i64) - (local $18 i64) + (local $11 i32) local.get $1 f64.const 0 f64.lt - local.tee $9 - if (result f64) + local.tee $10 + if local.get $0 i32.const 45 i32.store16 local.get $1 f64.neg - else - local.get $1 + local.set $1 end + local.get $1 i64.reinterpret_f64 local.tee $2 i64.const 9218868437227405312 @@ -5119,57 +5015,57 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.set $5 + local.tee $11 + i32.const 0 + i32.ne + local.set $7 local.get $2 i64.const 4503599627370495 i64.and - local.get $5 - i32.const 0 - i32.ne - local.tee $10 + local.get $7 i64.extend_i32_u i64.const 52 i64.shl i64.add - local.tee $2 + local.tee $5 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $6 + local.tee $2 i64.clz i32.wrap_i64 local.set $3 - local.get $6 + local.get $2 local.get $3 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $5 + local.get $11 i32.const 1 - local.get $10 + local.get $7 select i32.const 1075 i32.sub - local.tee $5 + local.tee $7 i32.const 1 i32.sub local.get $3 i32.sub local.set $3 - local.get $2 - local.get $2 + local.get $5 + local.get $5 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $10 + local.tee $11 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $5 - local.get $10 + local.get $7 + local.get $11 i32.sub local.get $3 i32.sub @@ -5204,69 +5100,50 @@ i32.shl i32.sub global.set $~lib/util/number/_K + i32.const 4572 + i32.load local.get $3 - call $~lib/array/Array#__get + i32.const 3 + i32.shl + i32.add + i64.load global.set $~lib/util/number/_frc_pow + i32.const 4796 + i32.load local.get $3 - call $~lib/array/Array#__get + i32.const 1 + i32.shl + i32.add + i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $2 - local.get $2 - i64.clz - i32.wrap_i64 - local.tee $3 - i64.extend_i32_s - i64.shl + global.get $~lib/util/number/_frc_pow local.tee $6 i64.const 4294967295 i64.and - local.tee $11 - global.get $~lib/util/number/_frc_pow - local.tee $2 - i64.const 4294967295 - i64.and - local.tee $13 - i64.mul - local.set $14 + local.set $2 global.get $~lib/util/number/_frc_plus - local.tee $7 - i64.const 4294967295 - i64.and - local.tee $4 - local.get $2 - i64.const 4294967295 - i64.and local.tee $8 - i64.mul - local.set $12 - global.get $~lib/util/number/_frc_minus - local.tee $15 i64.const 4294967295 i64.and - local.tee $16 - local.get $2 - i64.const 4294967295 - i64.and - local.tee $17 - i64.mul - local.set $18 - local.get $4 - local.get $2 - i64.const 32 - i64.shr_u local.tee $4 - i64.mul - local.get $7 + local.get $6 i64.const 32 i64.shr_u - local.tee $7 - local.get $8 + local.tee $6 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + local.tee $8 + local.get $2 + i64.mul + local.get $2 + local.get $4 i64.mul - local.get $12 i64.const 32 i64.shr_u i64.add - local.tee $8 + local.tee $4 i64.const 4294967295 i64.and i64.add @@ -5274,34 +5151,37 @@ i64.add i64.const 32 i64.shr_u - local.get $4 - local.get $7 - i64.mul + local.get $6 local.get $8 + i64.mul + local.get $4 i64.const 32 i64.shr_u i64.add i64.add i64.const 1 i64.sub - local.tee $7 - local.get $2 + local.tee $8 + local.get $6 + global.get $~lib/util/number/_frc_minus + local.tee $4 + i64.const 4294967295 + i64.and + local.tee $9 + i64.mul + local.get $4 i64.const 32 i64.shr_u local.tee $4 - local.get $16 + local.get $2 i64.mul - local.get $15 - i64.const 32 - i64.shr_u - local.tee $8 - local.get $17 + local.get $2 + local.get $9 i64.mul - local.get $18 i64.const 32 i64.shr_u i64.add - local.tee $12 + local.tee $9 i64.const 4294967295 i64.and i64.add @@ -5310,9 +5190,9 @@ i64.const 32 i64.shr_u local.get $4 - local.get $8 + local.get $6 i64.mul - local.get $12 + local.get $9 i64.const 32 i64.shr_u i64.add @@ -5321,29 +5201,38 @@ i64.add i64.sub local.set $4 - local.get $9 + local.get $10 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 - local.get $11 - i64.mul local.get $6 + local.get $5 + local.get $5 + i64.clz + i32.wrap_i64 + local.tee $0 + i64.extend_i32_s + i64.shl + local.tee $5 + i64.const 4294967295 + i64.and + local.tee $9 + i64.mul + local.get $5 i64.const 32 i64.shr_u - local.tee $6 - local.get $13 + local.tee $5 + local.get $2 + i64.mul + local.get $2 + local.get $9 i64.mul - local.get $14 i64.const 32 i64.shr_u i64.add - local.tee $11 + local.tee $2 i64.const 4294967295 i64.and i64.add @@ -5351,39 +5240,39 @@ i64.add i64.const 32 i64.shr_u - local.get $2 + local.get $5 local.get $6 i64.mul - local.get $11 + local.get $2 i64.const 32 i64.shr_u i64.add i64.add global.get $~lib/util/number/_exp_pow - local.tee $0 - local.get $5 - local.get $3 + local.tee $3 + local.get $7 + local.get $0 i32.sub i32.add i32.const -64 i32.sub - local.get $7 + local.get $8 global.get $~lib/util/number/_exp - local.get $0 + local.get $3 i32.add i32.const -64 i32.sub local.get $4 - local.get $9 + local.get $10 call $~lib/util/number/genDigits - local.get $9 + local.get $10 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $10 i32.add ) - (func $~lib/string/String#substring (; 74 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5470,7 +5359,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/dtoa (; 75 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 73 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5521,12 +5410,10 @@ local.get $1 local.get $2 call $~lib/string/String#substring - local.set $2 local.get $1 call $~lib/rt/tlsf/__free - local.get $2 ) - (func $start:std/string (; 76 ;) (type $FUNCSIG$v) + (func $start:std/string (; 74 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5849,20 +5736,16 @@ unreachable end global.get $std/string/str - local.set $0 i32.const 608 call $~lib/rt/pure/__retain drop - local.get $0 i32.const 608 i32.const 0 call $~lib/string/String#indexOf i32.const -1 i32.ne - local.set $0 i32.const 608 call $~lib/rt/pure/__release - local.get $0 i32.eqz if i32.const 0 @@ -7401,10 +7284,8 @@ i32.const 2464 i32.const 920 call $~lib/string/String#split - local.set $1 local.get $0 call $~lib/rt/pure/__release - local.get $1 local.tee $0 i32.load offset=12 i32.const 3 @@ -9000,11 +8881,11 @@ local.get $128 call $~lib/rt/pure/__release ) - (func $std/string/getString (; 77 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 75 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $start (; 78 ;) (type $FUNCSIG$v) + (func $start (; 76 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -9014,7 +8895,7 @@ end call $start:std/string ) - (func $~lib/rt/pure/markGray (; 79 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 77 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -9038,7 +8919,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 80 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 78 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -9051,7 +8932,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 81 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 79 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -9085,7 +8966,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 82 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 80 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -9118,7 +8999,7 @@ call $~lib/rt/tlsf/freeBlock end ) - (func $~lib/rt/pure/__visit (; 83 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 81 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.const 6708 i32.lt_u @@ -9228,7 +9109,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 84 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 82 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -9261,7 +9142,7 @@ end end ) - (func $~lib/rt/__visit_members (; 85 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 83 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$5 @@ -9290,7 +9171,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 86 ;) (type $FUNCSIG$v) + (func $null (; 84 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 4fb62f7b..c6ef81de 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -422,85 +422,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -556,20 +548,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -607,20 +597,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -631,14 +619,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -791,24 +777,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -822,27 +806,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -851,36 +833,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/freeBlock (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) @@ -920,19 +898,11 @@ i32.load i32.gt_u if - block - block - i32.const 232 - i32.const 288 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 232 + i32.const 288 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -980,12 +950,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -1082,15 +1050,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -1150,15 +1116,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -1168,21 +1132,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -1192,33 +1154,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -1227,7 +1186,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -1256,19 +1214,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 328 - i32.const 184 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 328 + i32.const 184 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1365,18 +1315,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1409,18 +1357,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1432,29 +1378,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1472,7 +1395,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1593,34 +1535,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1733,22 +1671,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1756,7 +1690,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1814,7 +1747,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1881,22 +1813,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1928,226 +1856,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -2155,15 +1935,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -2171,15 +1951,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -2187,10 +1967,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2206,65 +1986,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2272,15 +2057,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2288,15 +2073,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2304,10 +2089,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2323,307 +2108,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2631,148 +2456,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2780,76 +2573,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2857,40 +2634,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2898,22 +2667,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2985,26 +2750,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -3032,7 +2792,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -3042,22 +2801,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -3065,7 +2820,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -3104,7 +2858,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -3128,7 +2881,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -3150,7 +2902,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3507,7 +3258,6 @@ i32.add local.set $7 br $continue|0 - unreachable end unreachable end @@ -3532,18 +3282,14 @@ local.get $1 i32.eq if - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -3556,18 +3302,14 @@ i32.eq end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 call $~lib/string/String#get:length @@ -3577,18 +3319,14 @@ call $~lib/string/String#get:length i32.ne if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -3692,21 +3430,19 @@ i32.const 0 i32.eq if - block (result i32) - i32.const 552 - local.tee $3 - local.get $1 - local.tee $4 - i32.ne - if - local.get $3 - call $~lib/rt/pure/__retain - drop - local.get $4 - call $~lib/rt/pure/__release - end + i32.const 552 + local.tee $3 + local.get $1 + local.tee $4 + i32.ne + if local.get $3 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release end + local.get $3 local.set $1 end local.get $0 @@ -3737,16 +3473,12 @@ local.get $5 i32.gt_s if - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 local.get $6 @@ -3784,16 +3516,12 @@ i32.const 0 i32.eq if - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $2 local.tee $3 @@ -3823,16 +3551,12 @@ i32.const 0 i32.lt_s if - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 local.get $6 @@ -3861,16 +3585,12 @@ local.get $3 i32.eqz if - block - i32.const 0 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $0 call $~lib/string/String#get:length @@ -3878,16 +3598,12 @@ local.get $5 i32.eqz if - block - i32.const -1 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const -1 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $2 local.tee $4 @@ -3924,23 +3640,18 @@ call $~lib/util/string/compareImpl i32.eqz if - block - local.get $7 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + local.get $7 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -3993,7 +3704,6 @@ i32.add local.set $4 br $continue|0 - unreachable end unreachable end @@ -4046,17 +3756,13 @@ i32.eqz end if - block - local.get $0 - call $~lib/rt/pure/__retain - local.set $6 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - return - unreachable - end - unreachable + local.get $0 + call $~lib/rt/pure/__retain + local.set $6 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + return end local.get $4 local.get $3 @@ -4162,17 +3868,13 @@ i32.eqz end if - block - local.get $0 - call $~lib/rt/pure/__retain - local.set $6 - local.get $2 - call $~lib/rt/pure/__release - local.get $6 - return - unreachable - end - unreachable + local.get $0 + call $~lib/rt/pure/__retain + local.set $6 + local.get $2 + call $~lib/rt/pure/__release + local.get $6 + return end local.get $4 local.get $3 @@ -4249,17 +3951,13 @@ local.get $3 i32.eqz if - block - local.get $0 - call $~lib/string/String#get:length - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + local.get $0 + call $~lib/string/String#get:length + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $0 call $~lib/string/String#get:length @@ -4267,16 +3965,12 @@ local.get $5 i32.eqz if - block - i32.const -1 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const -1 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $2 local.tee $4 @@ -4311,23 +4005,18 @@ call $~lib/util/string/compareImpl i32.eqz if - block - local.get $7 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + local.get $7 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -4339,62 +4028,60 @@ ) (func $~lib/util/string/isWhiteSpaceOrLineTerminator (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - block $break|0 - block $case10|0 - block $case9|0 - block $case8|0 - block $case7|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - local.set $1 - local.get $1 - i32.const 9 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 10 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 13 - i32.eq - br_if $case2|0 - local.get $1 - i32.const 11 - i32.eq - br_if $case3|0 - local.get $1 - i32.const 12 - i32.eq - br_if $case4|0 - local.get $1 - i32.const 32 - i32.eq - br_if $case5|0 - local.get $1 - i32.const 160 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8232 - i32.eq - br_if $case7|0 - local.get $1 - i32.const 8233 - i32.eq - br_if $case8|0 - local.get $1 - i32.const 65279 - i32.eq - br_if $case9|0 - br $case10|0 - end + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + local.set $1 + local.get $1 + i32.const 9 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 10 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 13 + i32.eq + br_if $case2|0 + local.get $1 + i32.const 11 + i32.eq + br_if $case3|0 + local.get $1 + i32.const 12 + i32.eq + br_if $case4|0 + local.get $1 + i32.const 32 + i32.eq + br_if $case5|0 + local.get $1 + i32.const 160 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8232 + i32.eq + br_if $case7|0 + local.get $1 + i32.const 8233 + i32.eq + br_if $case8|0 + local.get $1 + i32.const 65279 + i32.eq + br_if $case9|0 + br $case10|0 end end end @@ -4404,15 +4091,12 @@ end end end - i32.const 1 - return end - i32.const 0 + i32.const 1 return - unreachable end - unreachable - unreachable + i32.const 0 + return ) (func $~lib/util/string/strtol (; 43 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64) (local $2 i32) @@ -4431,16 +4115,12 @@ local.get $2 i32.eqz if - block - f64.const nan:0x8000000000000 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + f64.const nan:0x8000000000000 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $0 local.set $4 @@ -4464,7 +4144,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -4478,16 +4157,12 @@ local.tee $2 i32.eqz if - block - f64.const nan:0x8000000000000 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + f64.const nan:0x8000000000000 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $4 i32.const 2 @@ -4508,16 +4183,12 @@ local.tee $2 i32.eqz if - block - f64.const nan:0x8000000000000 - local.set $3 - local.get $0 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + f64.const nan:0x8000000000000 + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $4 i32.const 2 @@ -4586,55 +4257,43 @@ br $case6|1 end end - block - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 2 - local.set $1 - br $break|1 - unreachable - end - unreachable + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + local.set $1 + br $break|1 end end - block - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 8 - local.set $1 - br $break|1 - unreachable - end - unreachable + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + local.set $1 + br $break|1 end end - block - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 16 - local.set $1 - br $break|1 - unreachable - end - unreachable + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + local.set $1 + br $break|1 end i32.const 10 local.set $1 @@ -4667,14 +4326,12 @@ local.set $8 block $break|2 loop $continue|2 - block (result i32) - local.get $2 - local.tee $7 - i32.const 1 - i32.sub - local.set $2 - local.get $7 - end + local.get $2 + local.tee $7 + i32.const 1 + i32.sub + local.set $2 + local.get $7 i32.eqz br_if $break|2 local.get $4 @@ -4732,11 +4389,7 @@ i32.sub local.set $5 else - block - br $break|2 - unreachable - end - unreachable + br $break|2 end end end @@ -4744,11 +4397,7 @@ local.get $1 i32.ge_s if - block - br $break|2 - unreachable - end - unreachable + br $break|2 end local.get $8 local.get $1 @@ -4763,7 +4412,6 @@ i32.add local.set $4 br $continue|2 - unreachable end unreachable end @@ -4805,16 +4453,12 @@ local.get $1 i32.eqz if - block - f64.const nan:0x8000000000000 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + f64.const nan:0x8000000000000 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 local.set $3 @@ -4838,7 +4482,6 @@ i32.sub local.set $1 br $continue|0 - unreachable end unreachable end @@ -4852,16 +4495,12 @@ local.tee $1 i32.eqz if - block - f64.const nan:0x8000000000000 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + f64.const nan:0x8000000000000 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $3 i32.const 2 @@ -4882,16 +4521,12 @@ local.tee $1 i32.eqz if - block - f64.const nan:0x8000000000000 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + f64.const nan:0x8000000000000 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $3 i32.const 2 @@ -4910,14 +4545,12 @@ local.set $6 block $break|1 loop $continue|1 - block (result i32) - local.get $1 - local.tee $7 - i32.const 1 - i32.sub - local.set $1 - local.get $7 - end + local.get $1 + local.tee $7 + i32.const 1 + i32.sub + local.set $1 + local.get $7 i32.eqz br_if $break|1 local.get $3 @@ -4935,14 +4568,12 @@ local.set $2 block $break|2 loop $continue|2 - block (result i32) - local.get $1 - local.tee $7 - i32.const 1 - i32.sub - local.set $1 - local.get $7 - end + local.get $1 + local.tee $7 + i32.const 1 + i32.sub + local.set $1 + local.get $7 i32.eqz br_if $break|2 local.get $3 @@ -4978,11 +4609,7 @@ i32.const 9 i32.gt_u if - block - br $break|2 - unreachable - end - unreachable + br $break|2 end local.get $6 local.get $4 @@ -5000,7 +4627,6 @@ i32.add local.set $3 br $continue|2 - unreachable end unreachable end @@ -5014,11 +4640,7 @@ i32.const 10 i32.ge_u if - block - br $break|1 - unreachable - end - unreachable + br $break|1 end local.get $6 f64.const 10 @@ -5032,7 +4654,6 @@ i32.add local.set $3 br $continue|1 - unreachable end unreachable end @@ -5070,21 +4691,19 @@ i32.const 0 i32.eq if - block (result i32) - i32.const 552 - local.tee $2 - local.get $1 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/pure/__retain - drop - local.get $3 - call $~lib/rt/pure/__release - end + i32.const 552 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/pure/__retain + drop + local.get $3 + call $~lib/rt/pure/__release end + local.get $2 local.set $1 end local.get $0 @@ -5105,17 +4724,13 @@ i32.const 0 i32.eq if - block - i32.const 120 - call $~lib/rt/pure/__retain - local.set $2 - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 120 + call $~lib/rt/pure/__retain + local.set $2 + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $6 i32.const 1 @@ -5209,18 +4824,14 @@ i32.eq end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 call $~lib/string/String#get:length @@ -5231,34 +4842,26 @@ local.get $3 i32.eqz if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $4 i32.eqz if - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -5311,18 +4914,14 @@ i32.eq end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 call $~lib/string/String#get:length @@ -5333,34 +4932,26 @@ local.get $4 i32.eqz if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $3 i32.eqz if - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -5455,15 +5046,11 @@ i64.gt_u end if - block - i32.const 1888 - i32.const 456 - i32.const 335 - i32.const 6 - call $~lib/builtins/abort - unreachable - unreachable - end + i32.const 1888 + i32.const 456 + i32.const 335 + i32.const 6 + call $~lib/builtins/abort unreachable end local.get $1 @@ -5675,20 +5262,18 @@ local.get $1 return end - block $~lib/rt/tlsf/GETRIGHT|inlined.4 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $6 local.get $6 i32.load @@ -6065,7 +5650,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -6091,19 +5675,11 @@ i32.shr_u i32.gt_u if - block - block - i32.const 1888 - i32.const 2304 - i32.const 14 - i32.const 47 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 1888 + i32.const 2304 + i32.const 14 + i32.const 47 + call $~lib/builtins/abort unreachable end local.get $0 @@ -6208,52 +5784,42 @@ local.get $2 i32.eqz if - block - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $3 - local.get $1 - call $~lib/rt/pure/__release - local.get $3 - return - unreachable - end - unreachable + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + call $~lib/rt/pure/__release + local.get $3 + return end local.get $1 i32.const 0 i32.eq if - block - block (result i32) - i32.const 1 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__allocArray - local.set $3 - local.get $3 - i32.load offset=4 - local.set $4 - local.get $4 - local.get $0 - call $~lib/rt/pure/__retain - i32.store - local.get $3 - end - call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__allocArray + local.set $3 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $4 + local.get $0 + call $~lib/rt/pure/__retain + i32.store + local.get $3 + call $~lib/rt/pure/__retain + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $0 call $~lib/string/String#get:length @@ -6274,21 +5840,17 @@ local.get $5 i32.eqz if - block - i32.const 0 - i32.const 2 - i32.const 3 - i32.const 0 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + i32.const 2 + i32.const 3 + i32.const 0 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $5 local.tee $4 @@ -6344,7 +5906,6 @@ i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -6443,23 +6004,18 @@ local.get $2 i32.eq if - block - local.get $9 - local.set $4 - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + local.get $9 + local.set $4 + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $10 local.get $6 i32.add local.set $11 br $continue|1 - unreachable end unreachable end @@ -6537,19 +6093,11 @@ i32.load offset=12 i32.ge_u if - block - block - i32.const 2352 - i32.const 2304 - i32.const 106 - i32.const 45 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 2352 + i32.const 2304 + i32.const 106 + i32.const 45 + call $~lib/builtins/abort unreachable end local.get $1 @@ -6559,19 +6107,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 232 - i32.const 2304 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 232 + i32.const 2304 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -6612,7 +6152,6 @@ return end unreachable - unreachable else local.get $0 i32.const 10000000 @@ -6642,10 +6181,8 @@ return end unreachable - unreachable end unreachable - unreachable ) (func $~lib/util/number/utoa32_lut (; 67 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -6713,7 +6250,6 @@ i64.or i64.store br $continue|0 - unreachable end unreachable end @@ -6826,18 +6362,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $3 - block $~lib/util/number/utoa32_core|inlined.0 - local.get $3 - local.set $6 - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_lut - end + local.get $3 + local.set $6 + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_lut local.get $1 if local.get $3 @@ -6869,18 +6403,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $2 - block $~lib/util/number/utoa32_core|inlined.1 - local.get $2 - local.set $5 - local.get $0 - local.set $4 - local.get $1 - local.set $3 - local.get $5 - local.get $4 - local.get $3 - call $~lib/util/number/utoa32_lut - end + local.get $2 + local.set $5 + local.get $0 + local.set $4 + local.get $1 + local.set $3 + local.get $5 + local.get $4 + local.get $3 + call $~lib/util/number/utoa32_lut local.get $2 call $~lib/rt/pure/__retain ) @@ -6918,7 +6450,6 @@ return end unreachable - unreachable else local.get $0 i64.const 100000000000000000 @@ -6948,10 +6479,8 @@ return end unreachable - unreachable end unreachable - unreachable ) (func $~lib/util/number/utoa64_lut (; 71 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -7071,7 +6600,6 @@ i64.or i64.store br $continue|0 - unreachable end unreachable end @@ -7112,18 +6640,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $1 - block $~lib/util/number/utoa32_core|inlined.2 - local.get $1 - local.set $6 - local.get $2 - local.set $5 - local.get $3 - local.set $4 - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_lut - end + local.get $1 + local.set $6 + local.get $2 + local.set $5 + local.get $3 + local.set $4 + local.get $6 + local.get $5 + local.get $4 + call $~lib/util/number/utoa32_lut else local.get $0 call $~lib/util/number/decimalCount64 @@ -7134,18 +6660,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $1 - block $~lib/util/number/utoa64_core|inlined.0 - local.get $1 - local.set $5 - local.get $0 - local.set $7 - local.get $3 - local.set $4 - local.get $5 - local.get $7 - local.get $4 - call $~lib/util/number/utoa64_lut - end + local.get $1 + local.set $5 + local.get $0 + local.set $7 + local.get $3 + local.set $4 + local.get $5 + local.get $7 + local.get $4 + call $~lib/util/number/utoa64_lut end local.get $1 call $~lib/rt/pure/__retain @@ -7195,18 +6719,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $2 - block $~lib/util/number/utoa32_core|inlined.3 - local.get $2 - local.set $7 - local.get $3 - local.set $6 - local.get $4 - local.set $5 - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_lut - end + local.get $2 + local.set $7 + local.get $3 + local.set $6 + local.get $4 + local.set $5 + local.get $7 + local.get $6 + local.get $5 + call $~lib/util/number/utoa32_lut else local.get $0 call $~lib/util/number/decimalCount64 @@ -7219,18 +6741,16 @@ i32.const 1 call $~lib/rt/tlsf/__alloc local.set $2 - block $~lib/util/number/utoa64_core|inlined.1 - local.get $2 - local.set $6 - local.get $0 - local.set $8 - local.get $4 - local.set $5 - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_lut - end + local.get $2 + local.set $6 + local.get $0 + local.set $8 + local.get $4 + local.set $5 + local.get $6 + local.get $8 + local.get $5 + call $~lib/util/number/utoa64_lut end local.get $1 if @@ -7262,34 +6782,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__get (; 77 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - block - block - i32.const 232 - i32.const 2304 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - ) - (func $~lib/array/Array#__unchecked_get (; 78 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 77 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -7298,34 +6791,7 @@ i32.add i32.load16_s ) - (func $~lib/array/Array#__get (; 79 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - block - block - i32.const 232 - i32.const 2304 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - local.get $0 - local.get $1 - call $~lib/array/Array#__unchecked_get - ) - (func $~lib/util/number/genDigits (; 80 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 78 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -7446,163 +6912,117 @@ br_if $case9|1 br $case10|1 end - block - local.get $12 - i32.const 1000000000 - i32.div_u - local.set $17 - local.get $12 - i32.const 1000000000 - i32.rem_u - local.set $12 - br $break|1 - unreachable - end - unreachable - end - block local.get $12 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $17 local.get $12 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $17 local.get $12 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $17 local.get $12 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $17 local.get $12 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 10000 + i32.const 100000 i32.div_u local.set $17 local.get $12 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 1000 + i32.const 10000 i32.div_u local.set $17 local.get $12 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 100 + i32.const 1000 i32.div_u local.set $17 local.get $12 - i32.const 100 + i32.const 1000 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 - i32.const 10 + i32.const 100 i32.div_u local.set $17 local.get $12 - i32.const 10 + i32.const 100 i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block local.get $12 + i32.const 10 + i32.div_u local.set $17 - i32.const 0 + local.get $12 + i32.const 10 + i32.rem_u local.set $12 br $break|1 - unreachable end - unreachable - end - block - i32.const 0 + local.get $12 local.set $17 + i32.const 0 + local.set $12 br $break|1 - unreachable end - unreachable + i32.const 0 + local.set $17 + br $break|1 end local.get $17 local.get $15 i32.or if local.get $0 - block (result i32) - local.get $15 - local.tee $18 - i32.const 1 - i32.add - local.set $15 - local.get $18 - end + local.get $15 + local.tee $18 + i32.const 1 + i32.add + local.set $15 + local.get $18 i32.const 1 i32.shl i32.add @@ -7633,98 +7053,94 @@ local.get $14 i32.add global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $0 - local.set $24 - local.get $15 - local.set $18 - local.get $5 - local.set $23 - local.get $19 - local.set $22 - local.get $16 - local.get $14 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $7 - i64.extend_i32_s - i64.shl - local.set $21 - local.get $10 - local.set $20 - local.get $24 - local.get $18 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $25 - local.get $25 - i32.load16_u - local.set $26 - block $break|2 - loop $continue|2 + local.get $0 + local.set $24 + local.get $15 + local.set $18 + local.get $5 + local.set $23 + local.get $19 + local.set $22 + local.get $16 + local.get $14 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $7 + i64.extend_i32_s + i64.shl + local.set $21 + local.get $10 + local.set $20 + local.get $24 + local.get $18 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $25 + local.get $25 + i32.load16_u + local.set $26 + block $break|2 + loop $continue|2 + local.get $22 + local.get $20 + i64.lt_u + if (result i32) + local.get $23 local.get $22 + i64.sub + local.get $21 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $22 + local.get $21 + i64.add local.get $20 i64.lt_u if (result i32) - local.get $23 + i32.const 1 + else + local.get $20 local.get $22 i64.sub - local.get $21 - i64.ge_u - else - i32.const 0 - end - if (result i32) local.get $22 local.get $21 i64.add local.get $20 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $20 - local.get $22 - i64.sub - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.sub - i64.gt_u - end - else - i32.const 0 + i64.sub + i64.gt_u end - i32.eqz - br_if $break|2 - local.get $26 - i32.const 1 - i32.sub - local.set $26 - local.get $22 - local.get $21 - i64.add - local.set $22 - br $continue|2 - unreachable + else + i32.const 0 end - unreachable + i32.eqz + br_if $break|2 + local.get $26 + i32.const 1 + i32.sub + local.set $26 + local.get $22 + local.get $21 + i64.add + local.set $22 + br $continue|2 end - local.get $25 - local.get $26 - i32.store16 + unreachable end + local.get $25 + local.get $26 + i32.store16 local.get $15 return end br $continue|0 - unreachable end unreachable end @@ -7750,14 +7166,12 @@ i64.ne if local.get $0 - block (result i32) - local.get $15 - local.tee $17 - i32.const 1 - i32.add - local.set $15 - local.get $17 - end + local.get $15 + local.tee $17 + i32.const 1 + i32.add + local.set $15 + local.get $17 i32.const 1 i32.shl i32.add @@ -7796,95 +7210,90 @@ i64.load32_u i64.mul local.set $10 - block $~lib/util/number/grisuRound|inlined.1 - local.get $0 - local.set $24 - local.get $15 - local.set $18 - local.get $5 - local.set $23 - local.get $13 - local.set $22 - local.get $8 - local.set $21 - local.get $10 - local.set $20 - local.get $24 - local.get $18 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $17 - local.get $17 - i32.load16_u - local.set $26 - block $break|4 - loop $continue|4 + local.get $0 + local.set $24 + local.get $15 + local.set $18 + local.get $5 + local.set $23 + local.get $13 + local.set $22 + local.get $8 + local.set $21 + local.get $10 + local.set $20 + local.get $24 + local.get $18 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $17 + local.get $17 + i32.load16_u + local.set $26 + block $break|4 + loop $continue|4 + local.get $22 + local.get $20 + i64.lt_u + if (result i32) + local.get $23 local.get $22 + i64.sub + local.get $21 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $22 + local.get $21 + i64.add local.get $20 i64.lt_u if (result i32) - local.get $23 + i32.const 1 + else + local.get $20 local.get $22 i64.sub - local.get $21 - i64.ge_u - else - i32.const 0 - end - if (result i32) local.get $22 local.get $21 i64.add local.get $20 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $20 - local.get $22 - i64.sub - local.get $22 - local.get $21 - i64.add - local.get $20 - i64.sub - i64.gt_u - end - else - i32.const 0 + i64.sub + i64.gt_u end - i32.eqz - br_if $break|4 - local.get $26 - i32.const 1 - i32.sub - local.set $26 - local.get $22 - local.get $21 - i64.add - local.set $22 - br $continue|4 - unreachable + else + i32.const 0 end - unreachable + i32.eqz + br_if $break|4 + local.get $26 + i32.const 1 + i32.sub + local.set $26 + local.get $22 + local.get $21 + i64.add + local.set $22 + br $continue|4 end - local.get $17 - local.get $26 - i32.store16 + unreachable end + local.get $17 + local.get $26 + i32.store16 local.get $15 return end br $continue|3 - unreachable end unreachable - local.get $15 ) - (func $~lib/util/number/prettify (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7949,7 +7358,6 @@ i32.add local.set $4 br $loop|0 - unreachable end unreachable end @@ -8061,7 +7469,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -8077,51 +7484,47 @@ local.get $0 i32.const 101 i32.store16 offset=2 - block $~lib/util/number/genExponent|inlined.0 (result i32) - local.get $0 - i32.const 4 - i32.add - local.set $4 - local.get $3 - i32.const 1 + local.get $0 + i32.const 4 + i32.add + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $5 + local.get $5 + i32.const 0 + i32.lt_s + local.set $6 + local.get $6 + if + i32.const 0 + local.get $5 i32.sub local.set $5 - local.get $5 - i32.const 0 - i32.lt_s - local.set $6 - local.get $6 - if - i32.const 0 - local.get $5 - i32.sub - local.set $5 - end - local.get $5 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $7 - block $~lib/util/number/utoa32_core|inlined.4 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/number/utoa32_lut - end - local.get $4 - i32.const 45 - i32.const 43 - local.get $6 - select - i32.store16 - local.get $7 end + local.get $5 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $7 + local.get $4 + local.set $10 + local.get $5 + local.set $9 + local.get $7 + local.set $8 + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/number/utoa32_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $6 + select + i32.store16 + local.get $7 local.set $1 local.get $1 i32.const 2 @@ -8151,53 +7554,49 @@ i32.const 101 i32.store16 offset=2 local.get $1 - block $~lib/util/number/genExponent|inlined.1 (result i32) - local.get $0 - local.get $7 - i32.add - i32.const 4 - i32.add - local.set $9 - local.get $3 - i32.const 1 + local.get $0 + local.get $7 + i32.add + i32.const 4 + i32.add + local.set $9 + local.get $3 + i32.const 1 + i32.sub + local.set $8 + local.get $8 + i32.const 0 + i32.lt_s + local.set $6 + local.get $6 + if + i32.const 0 + local.get $8 i32.sub local.set $8 - local.get $8 - i32.const 0 - i32.lt_s - local.set $6 - local.get $6 - if - i32.const 0 - local.get $8 - i32.sub - local.set $8 - end - local.get $8 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $4 - block $~lib/util/number/utoa32_core|inlined.5 - local.get $9 - local.set $11 - local.get $8 - local.set $5 - local.get $4 - local.set $10 - local.get $11 - local.get $5 - local.get $10 - call $~lib/util/number/utoa32_lut - end - local.get $9 - i32.const 45 - i32.const 43 - local.get $6 - select - i32.store16 - local.get $4 end + local.get $8 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $4 + local.get $9 + local.set $11 + local.get $8 + local.set $5 + local.get $4 + local.set $10 + local.get $11 + local.get $5 + local.get $10 + call $~lib/util/number/utoa32_lut + local.get $9 + i32.const 45 + i32.const 43 + local.get $6 + select + i32.store16 + local.get $4 i32.add local.set $1 local.get $1 @@ -8212,9 +7611,8 @@ unreachable end unreachable - unreachable ) - (func $~lib/util/number/dtoa_core (; 82 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 80 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8255,387 +7653,371 @@ i32.const 45 i32.store16 end - block $~lib/util/number/grisu2|inlined.0 (result i32) - local.get $1 - local.set $5 - local.get $0 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - i64.reinterpret_f64 - local.set $6 - local.get $6 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $7 - local.get $6 - i64.const 4503599627370495 - i64.and - local.set $8 - local.get $7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $8 - i64.add - local.set $9 - local.get $7 - i32.const 1 - local.get $7 - i32.const 0 - i32.ne - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $7 - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $9 - local.set $11 - local.get $7 - local.set $10 - local.get $11 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $12 - local.get $10 - i32.const 1 - i32.sub - local.set $13 - local.get $12 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $12 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $12 - local.get $13 - local.get $14 - i32.sub - local.set $13 - i32.const 1 - local.get $11 - i64.const 4503599627370496 - i64.eq - i32.add - local.set $15 - local.get $12 - global.set $~lib/util/number/_frc_plus - local.get $11 - local.get $15 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $10 - local.get $15 - i32.sub - local.get $13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $13 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $10 - i32.const -61 - local.get $10 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $16 - local.get $16 - i32.trunc_f64_s - local.set $15 - local.get $15 - local.get $15 - f64.convert_i32_s - local.get $16 - f64.ne - i32.add - local.set $15 - local.get $15 - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $14 - i32.const 348 - local.get $14 - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 5016 - local.get $14 - call $~lib/array/Array#__get - global.set $~lib/util/number/_frc_pow - i32.const 5240 - local.get $14 - call $~lib/array/Array#__get - global.set $~lib/util/number/_exp_pow - end - local.get $9 - i64.clz - i32.wrap_i64 - local.set $14 - local.get $9 - local.get $14 - i64.extend_i32_s - i64.shl - local.set $9 - local.get $7 - local.get $14 - i32.sub - local.set $7 - global.get $~lib/util/number/_frc_pow - local.set $12 - global.get $~lib/util/number/_exp_pow - local.set $15 - block $~lib/util/number/umul64f|inlined.0 (result i64) - local.get $9 - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $24 - local.get $24 - i64.const 2147483647 - i64.add - local.set $24 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $24 - i64.const 32 - i64.shr_u - local.set $24 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $24 - i64.add - end - local.set $24 - block $~lib/util/number/umul64e|inlined.0 (result i32) - local.get $7 - local.set $10 - local.get $15 - local.set $13 - local.get $10 - local.get $13 - i32.add - i32.const 64 - i32.add - end - local.set $10 - block $~lib/util/number/umul64f|inlined.1 (result i64) - global.get $~lib/util/number/_frc_plus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $23 - local.get $11 - i64.const 4294967295 - i64.and - local.set $22 - local.get $17 - i64.const 32 - i64.shr_u - local.set $21 - local.get $11 - i64.const 32 - i64.shr_u - local.set $20 - local.get $23 - local.get $22 - i64.mul - local.set $19 - local.get $21 - local.get $22 - i64.mul - local.get $19 - i64.const 32 - i64.shr_u - i64.add - local.set $18 - local.get $23 - local.get $20 - i64.mul - local.get $18 - i64.const 4294967295 - i64.and - i64.add - local.set $25 - local.get $25 - i64.const 2147483647 - i64.add - local.set $25 - local.get $18 - i64.const 32 - i64.shr_u - local.set $18 - local.get $25 - i64.const 32 - i64.shr_u - local.set $25 - local.get $21 - local.get $20 - i64.mul - local.get $18 - i64.add - local.get $25 - i64.add - end - i64.const 1 - i64.sub - local.set $25 - block $~lib/util/number/umul64e|inlined.1 (result i32) - global.get $~lib/util/number/_exp - local.set $26 - local.get $15 - local.set $13 - local.get $26 - local.get $13 - i32.add - i32.const 64 - i32.add - end - local.set $26 - block $~lib/util/number/umul64f|inlined.2 (result i64) - global.get $~lib/util/number/_frc_minus - local.set $17 - local.get $12 - local.set $11 - local.get $17 - i64.const 4294967295 - i64.and - local.set $18 - local.get $11 - i64.const 4294967295 - i64.and - local.set $19 - local.get $17 - i64.const 32 - i64.shr_u - local.set $20 - local.get $11 - i64.const 32 - i64.shr_u - local.set $21 - local.get $18 - local.get $19 - i64.mul - local.set $22 - local.get $20 - local.get $19 - i64.mul - local.get $22 - i64.const 32 - i64.shr_u - i64.add - local.set $23 - local.get $18 - local.get $21 - i64.mul - local.get $23 - i64.const 4294967295 - i64.and - i64.add - local.set $27 - local.get $27 - i64.const 2147483647 - i64.add - local.set $27 - local.get $23 - i64.const 32 - i64.shr_u - local.set $23 - local.get $27 - i64.const 32 - i64.shr_u - local.set $27 - local.get $20 - local.get $21 - i64.mul - local.get $23 - i64.add - local.get $27 - i64.add - end - i64.const 1 - i64.add - local.set $27 - local.get $25 - local.get $27 - i64.sub - local.set $23 - local.get $4 - local.get $24 - local.get $10 - local.get $25 - local.get $26 - local.get $23 - local.get $3 - call $~lib/util/number/genDigits - end + local.get $1 + local.set $5 + local.get $0 + local.set $4 + local.get $2 + local.set $3 + local.get $5 + i64.reinterpret_f64 + local.set $6 + local.get $6 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $7 + local.get $6 + i64.const 4503599627370495 + i64.and + local.set $8 + local.get $7 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $8 + i64.add + local.set $9 + local.get $7 + i32.const 1 + local.get $7 + i32.const 0 + i32.ne + select + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $7 + local.get $9 + local.set $11 + local.get $7 + local.set $10 + local.get $11 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $12 + local.get $10 + i32.const 1 + i32.sub + local.set $13 + local.get $12 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $12 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $12 + local.get $13 + local.get $14 + i32.sub + local.set $13 + i32.const 1 + local.get $11 + i64.const 4503599627370496 + i64.eq + i32.add + local.set $15 + local.get $12 + global.set $~lib/util/number/_frc_plus + local.get $11 + local.get $15 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $10 + local.get $15 + i32.sub + local.get $13 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $13 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $10 + i32.const -61 + local.get $10 + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $16 + local.get $16 + i32.trunc_f64_s + local.set $15 + local.get $15 + local.get $15 + f64.convert_i32_s + local.get $16 + f64.ne + i32.add + local.set $15 + local.get $15 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $14 + i32.const 348 + local.get $14 + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 5016 + local.get $14 + call $~lib/array/Array#__unchecked_get + global.set $~lib/util/number/_frc_pow + i32.const 5240 + local.get $14 + call $~lib/array/Array#__unchecked_get + global.set $~lib/util/number/_exp_pow + local.get $9 + i64.clz + i32.wrap_i64 + local.set $14 + local.get $9 + local.get $14 + i64.extend_i32_s + i64.shl + local.set $9 + local.get $7 + local.get $14 + i32.sub + local.set $7 + global.get $~lib/util/number/_frc_pow + local.set $12 + global.get $~lib/util/number/_exp_pow + local.set $15 + local.get $9 + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $24 + local.get $24 + i64.const 2147483647 + i64.add + local.set $24 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $24 + i64.const 32 + i64.shr_u + local.set $24 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $24 + i64.add + local.set $24 + local.get $7 + local.set $10 + local.get $15 + local.set $13 + local.get $10 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $10 + global.get $~lib/util/number/_frc_plus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $23 + local.get $11 + i64.const 4294967295 + i64.and + local.set $22 + local.get $17 + i64.const 32 + i64.shr_u + local.set $21 + local.get $11 + i64.const 32 + i64.shr_u + local.set $20 + local.get $23 + local.get $22 + i64.mul + local.set $19 + local.get $21 + local.get $22 + i64.mul + local.get $19 + i64.const 32 + i64.shr_u + i64.add + local.set $18 + local.get $23 + local.get $20 + i64.mul + local.get $18 + i64.const 4294967295 + i64.and + i64.add + local.set $25 + local.get $25 + i64.const 2147483647 + i64.add + local.set $25 + local.get $18 + i64.const 32 + i64.shr_u + local.set $18 + local.get $25 + i64.const 32 + i64.shr_u + local.set $25 + local.get $21 + local.get $20 + i64.mul + local.get $18 + i64.add + local.get $25 + i64.add + i64.const 1 + i64.sub + local.set $25 + global.get $~lib/util/number/_exp + local.set $26 + local.get $15 + local.set $13 + local.get $26 + local.get $13 + i32.add + i32.const 64 + i32.add + local.set $26 + global.get $~lib/util/number/_frc_minus + local.set $17 + local.get $12 + local.set $11 + local.get $17 + i64.const 4294967295 + i64.and + local.set $18 + local.get $11 + i64.const 4294967295 + i64.and + local.set $19 + local.get $17 + i64.const 32 + i64.shr_u + local.set $20 + local.get $11 + i64.const 32 + i64.shr_u + local.set $21 + local.get $18 + local.get $19 + i64.mul + local.set $22 + local.get $20 + local.get $19 + i64.mul + local.get $22 + i64.const 32 + i64.shr_u + i64.add + local.set $23 + local.get $18 + local.get $21 + i64.mul + local.get $23 + i64.const 4294967295 + i64.and + i64.add + local.set $27 + local.get $27 + i64.const 2147483647 + i64.add + local.set $27 + local.get $23 + i64.const 32 + i64.shr_u + local.set $23 + local.get $27 + i64.const 32 + i64.shr_u + local.set $27 + local.get $20 + local.get $21 + i64.mul + local.get $23 + i64.add + local.get $27 + i64.add + i64.const 1 + i64.add + local.set $27 + local.get $25 + local.get $27 + i64.sub + local.set $23 + local.get $4 + local.get $24 + local.get $10 + local.get $25 + local.get $26 + local.get $23 + local.get $3 + call $~lib/util/number/genDigits local.set $28 local.get $0 local.get $2 @@ -8652,7 +8034,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#substring (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8771,7 +8153,7 @@ local.get $10 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/dtoa (; 84 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 82 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8830,7 +8212,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $start:std/string (; 85 ;) (type $FUNCSIG$v) + (func $start:std/string (; 83 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9041,14 +8423,12 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 0 - i32.const 0 - call $~lib/string/String.fromCharCode|trampoline - local.tee $0 - end + i32.const 1 + global.set $~lib/argc + i32.const 0 + i32.const 0 + call $~lib/string/String.fromCharCode|trampoline + local.tee $0 i32.const 384 call $~lib/string/String.__eq i32.eqz @@ -9060,14 +8440,12 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 54 - i32.const 0 - call $~lib/string/String.fromCharCode|trampoline - local.tee $1 - end + i32.const 1 + global.set $~lib/argc + i32.const 54 + i32.const 0 + call $~lib/string/String.fromCharCode|trampoline + local.tee $1 i32.const 432 call $~lib/string/String.__eq i32.eqz @@ -9079,16 +8457,14 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 1 - global.set $~lib/argc - i32.const 65536 - i32.const 54 - i32.add - i32.const 0 - call $~lib/string/String.fromCharCode|trampoline - local.tee $2 - end + i32.const 1 + global.set $~lib/argc + i32.const 65536 + i32.const 54 + i32.add + i32.const 0 + call $~lib/string/String.fromCharCode|trampoline + local.tee $2 i32.const 432 call $~lib/string/String.__eq i32.eqz @@ -9969,42 +9345,40 @@ call $~lib/builtins/abort unreachable end - block - i32.const 408 - i32.const 1488 - call $~lib/string/String.__concat - local.tee $22 - call $~lib/rt/pure/__retain - local.set $23 - local.get $23 - i32.const 1512 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 92 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $23 - i32.const 408 - call $~lib/string/String.__ne - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 93 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $22 - call $~lib/rt/pure/__release - local.get $23 - call $~lib/rt/pure/__release + i32.const 408 + i32.const 1488 + call $~lib/string/String.__concat + local.tee $22 + call $~lib/rt/pure/__retain + local.set $23 + local.get $23 + i32.const 1512 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 92 + i32.const 2 + call $~lib/builtins/abort + unreachable end + local.get $23 + i32.const 408 + call $~lib/string/String.__ne + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 93 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $22 + call $~lib/rt/pure/__release + local.get $23 + call $~lib/rt/pure/__release i32.const 120 i32.const 120 call $~lib/string/String.__eq @@ -10360,43 +9734,41 @@ call $~lib/builtins/abort unreachable end - block - i32.const 65377 - call $~lib/string/String.fromCodePoint - local.set $23 - i32.const 55296 - call $~lib/string/String.fromCodePoint - local.tee $22 - i32.const 56322 - call $~lib/string/String.fromCodePoint - local.tee $24 - call $~lib/string/String.__concat - local.tee $25 - call $~lib/rt/pure/__retain - local.set $26 - local.get $23 - local.get $26 - call $~lib/string/String.__gt - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 131 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $23 - call $~lib/rt/pure/__release - local.get $22 - call $~lib/rt/pure/__release - local.get $24 - call $~lib/rt/pure/__release - local.get $25 - call $~lib/rt/pure/__release - local.get $26 - call $~lib/rt/pure/__release + i32.const 65377 + call $~lib/string/String.fromCodePoint + local.set $23 + i32.const 55296 + call $~lib/string/String.fromCodePoint + local.tee $22 + i32.const 56322 + call $~lib/string/String.fromCodePoint + local.tee $24 + call $~lib/string/String.__concat + local.tee $25 + call $~lib/rt/pure/__retain + local.set $26 + local.get $23 + local.get $26 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 131 + i32.const 2 + call $~lib/builtins/abort + unreachable end + local.get $23 + call $~lib/rt/pure/__release + local.get $22 + call $~lib/rt/pure/__release + local.get $24 + call $~lib/rt/pure/__release + local.get $25 + call $~lib/rt/pure/__release + local.get $26 + call $~lib/rt/pure/__release i32.const 736 call $~lib/string/String#get:length i32.const 3 @@ -10545,21 +9917,19 @@ call $~lib/builtins/abort unreachable end - block (result i32) - i32.const 2088 - local.tee $31 - global.get $std/string/str - local.tee $32 - i32.ne - if - local.get $31 - call $~lib/rt/pure/__retain - drop - local.get $32 - call $~lib/rt/pure/__release - end + i32.const 2088 + local.tee $31 + global.get $std/string/str + local.tee $32 + i32.ne + if local.get $31 + call $~lib/rt/pure/__retain + drop + local.get $32 + call $~lib/rt/pure/__release end + local.get $31 global.set $std/string/str global.get $std/string/str i32.const 0 @@ -10673,229 +10043,217 @@ call $~lib/builtins/abort unreachable end - block - i32.const 0 - local.set $38 - block (result i32) - i32.const 120 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.set $39 - local.get $38 - call $~lib/rt/pure/__release - local.get $39 - end - local.set $38 + i32.const 0 + local.set $38 + i32.const 120 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $39 + local.get $38 + call $~lib/rt/pure/__release + local.get $39 + local.set $38 + local.get $38 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 1 + i32.eq + if (result i32) local.get $38 - call $~lib/array/Array<~lib/string/String>#get:length - i32.const 1 - i32.eq - if (result i32) - local.get $38 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $39 - i32.const 120 - call $~lib/string/String.__eq - local.set $40 - local.get $39 - call $~lib/rt/pure/__release - local.get $40 - else - i32.const 0 - end i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 160 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 120 - i32.const 120 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.set $40 - local.get $38 - call $~lib/rt/pure/__release - local.get $40 - end - local.set $38 - local.get $38 - call $~lib/array/Array<~lib/string/String>#get:length - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 162 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 120 - i32.const 920 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.set $39 - local.get $38 - call $~lib/rt/pure/__release - local.get $39 - end - local.set $38 - local.get $38 - call $~lib/array/Array<~lib/string/String>#get:length - i32.const 1 - i32.eq - if (result i32) - local.get $38 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $39 - i32.const 120 - call $~lib/string/String.__eq - local.set $40 - local.get $39 - call $~lib/rt/pure/__release - local.get $40 - else - i32.const 0 - end - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 164 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 2464 - i32.const 2496 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.set $40 - local.get $38 - call $~lib/rt/pure/__release - local.get $40 - end - local.set $38 - local.get $38 - call $~lib/array/Array<~lib/string/String>#get:length - i32.const 1 - i32.eq - if (result i32) - local.get $38 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $40 - i32.const 2464 - call $~lib/string/String.__eq - local.set $39 - local.get $40 - call $~lib/rt/pure/__release - local.get $39 - else - i32.const 0 - end - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 166 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - i32.const 2464 - i32.const 920 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#split - local.set $39 - local.get $38 - call $~lib/rt/pure/__release - local.get $39 - end - local.set $38 - local.get $38 - call $~lib/array/Array<~lib/string/String>#get:length - i32.const 3 - i32.eq - if (result i32) - local.get $38 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $39 - i32.const 408 - call $~lib/string/String.__eq - local.set $40 - local.get $39 - call $~lib/rt/pure/__release - local.get $40 - else - i32.const 0 - end - i32.const 0 - i32.ne - if (result i32) - local.get $38 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $39 - i32.const 1488 - call $~lib/string/String.__eq - local.set $40 - local.get $39 - call $~lib/rt/pure/__release - local.get $40 - else - i32.const 0 - end - i32.const 0 - i32.ne - if (result i32) - local.get $38 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $39 - i32.const 2520 - call $~lib/string/String.__eq - local.set $40 - local.get $39 - call $~lib/rt/pure/__release - local.get $40 - else - i32.const 0 - end - i32.const 0 - i32.ne - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 168 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $38 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $39 + i32.const 120 + call $~lib/string/String.__eq + local.set $40 + local.get $39 call $~lib/rt/pure/__release + local.get $40 + else + i32.const 0 end i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 160 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 120 + i32.const 120 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $40 + local.get $38 + call $~lib/rt/pure/__release + local.get $40 + local.set $38 + local.get $38 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 162 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 120 + i32.const 920 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $39 + local.get $38 + call $~lib/rt/pure/__release + local.get $39 + local.set $38 + local.get $38 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 1 + i32.eq + if (result i32) + local.get $38 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $39 + i32.const 120 + call $~lib/string/String.__eq + local.set $40 + local.get $39 + call $~lib/rt/pure/__release + local.get $40 + else + i32.const 0 + end + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 164 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 2464 + i32.const 2496 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $40 + local.get $38 + call $~lib/rt/pure/__release + local.get $40 + local.set $38 + local.get $38 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 1 + i32.eq + if (result i32) + local.get $38 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $40 + i32.const 2464 + call $~lib/string/String.__eq + local.set $39 + local.get $40 + call $~lib/rt/pure/__release + local.get $39 + else + i32.const 0 + end + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 166 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 2464 + i32.const 920 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#split + local.set $39 + local.get $38 + call $~lib/rt/pure/__release + local.get $39 + local.set $38 + local.get $38 + call $~lib/array/Array<~lib/string/String>#get:length + i32.const 3 + i32.eq + if (result i32) + local.get $38 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $39 + i32.const 408 + call $~lib/string/String.__eq + local.set $40 + local.get $39 + call $~lib/rt/pure/__release + local.get $40 + else + i32.const 0 + end + i32.const 0 + i32.ne + if (result i32) + local.get $38 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $39 + i32.const 1488 + call $~lib/string/String.__eq + local.set $40 + local.get $39 + call $~lib/rt/pure/__release + local.get $40 + else + i32.const 0 + end + i32.const 0 + i32.ne + if (result i32) + local.get $38 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $39 + i32.const 2520 + call $~lib/string/String.__eq + local.set $40 + local.get $39 + call $~lib/rt/pure/__release + local.get $40 + else + i32.const 0 + end + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 168 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $38 + call $~lib/rt/pure/__release + i32.const 0 call $~lib/util/number/itoa32 local.tee $38 i32.const 1040 @@ -12435,11 +11793,11 @@ local.get $128 call $~lib/rt/pure/__release ) - (func $std/string/getString (; 86 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 84 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $start (; 87 ;) (type $FUNCSIG$v) + (func $start (; 85 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -12449,7 +11807,7 @@ end call $start:std/string ) - (func $~lib/rt/pure/markGray (; 88 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 86 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12476,7 +11834,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 89 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 87 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -12493,7 +11851,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 90 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 88 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12530,7 +11888,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 91 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 89 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -12568,7 +11926,7 @@ call $~lib/rt/tlsf/freeBlock end ) - (func $~lib/rt/pure/__visit (; 92 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 90 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -12612,103 +11970,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 136 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 136 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 136 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -12722,7 +12060,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 91 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12757,173 +12095,80 @@ i32.add local.set $2 br $continue|0 - unreachable end unreachable end ) - (func $~lib/array/Array#__visit_impl (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 92 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 96 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 97 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/__visit_members (; 98 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 96 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$9 - block $switch$1$case$8 - block $switch$1$case$7 - block $switch$1$case$6 - block $switch$1$case$5 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$7 $switch$1$case$8 $switch$1$case$9 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable - end - block - br $block$4$break - unreachable - end - unreachable - end - block - block + block $switch$1$default + block $switch$1$case$9 + block $switch$1$case$8 + block $switch$1$case$7 + block $switch$1$case$6 + block $switch$1$case$5 + block $switch$1$case$4 + block $switch$1$case$2 local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$6 $switch$1$case$7 $switch$1$case$8 $switch$1$case$9 $switch$1$default end - unreachable - unreachable + return end - unreachable + br $block$4$break end - block - block - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array<~lib/string/String>#__visit_impl + br $block$4$break end - unreachable - unreachable - end - unreachable - end - block - block local.get $0 local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + br $block$4$break end - unreachable - end - block - block - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - end - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 + local.get $0 local.get $1 - call $~lib/rt/pure/__visit + call $~lib/array/Array#__visit_impl + br $block$4$break end - return - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + br $block$4$break end unreachable - unreachable end - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end + return ) - (func $null (; 99 ;) (type $FUNCSIG$v) + (func $null (; 97 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index c8bf6283..4f375618 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -208,14 +208,12 @@ i32.and local.tee $1 i32.sub - local.set $2 local.get $0 local.get $1 i32.add local.tee $0 i32.const 0 i32.store - local.get $2 i32.const -4 i32.and local.tee $1 @@ -497,7 +495,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index 7e389b68..d5956daa 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -68,14 +68,12 @@ local.get $0 call $~lib/rt/stub/__retain drop - block (result i32) - global.get $~lib/symbol/nextId - local.tee $1 - i32.const 1 - i32.add - global.set $~lib/symbol/nextId - local.get $1 - end + global.get $~lib/symbol/nextId + local.tee $1 + i32.const 1 + i32.add + global.set $~lib/symbol/nextId + local.get $1 local.set $2 local.get $2 i32.eqz @@ -439,7 +437,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -451,19 +448,11 @@ i32.const 1073741808 i32.gt_u if - block - block - i32.const 96 - i32.const 144 - i32.const 56 - i32.const 42 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 96 + i32.const 144 + i32.const 56 + i32.const 42 + call $~lib/builtins/abort unreachable end local.get $1 @@ -482,16 +471,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/stub/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/stub/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -500,16 +487,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/stub/__release - local.get $1 - end + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/stub/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -522,36 +507,34 @@ i32.store offset=20 ) (func $~lib/map/Map<~lib/string/String,usize>#constructor (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 3 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 3 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map<~lib/string/String,usize>#clear local.get $0 ) @@ -560,16 +543,14 @@ (local $2 i32) local.get $0 local.tee $1 - block (result i32) - i32.const 0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $2 - local.get $1 - i32.load - call $~lib/rt/stub/__release - local.get $2 - end + i32.const 0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $2 + local.get $1 + i32.load + call $~lib/rt/stub/__release + local.get $2 i32.store local.get $0 i32.const 4 @@ -578,16 +559,14 @@ i32.store offset=4 local.get $0 local.tee $2 - block (result i32) - i32.const 0 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - local.get $2 - i32.load offset=8 - call $~lib/rt/stub/__release - local.get $1 - end + i32.const 0 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + local.get $2 + i32.load offset=8 + call $~lib/rt/stub/__release + local.get $1 i32.store offset=8 local.get $0 i32.const 4 @@ -600,36 +579,34 @@ i32.store offset=20 ) (func $~lib/map/Map#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) - block (result i32) - local.get $0 - i32.eqz - if - i32.const 24 - i32.const 4 - call $~lib/rt/stub/__alloc - call $~lib/rt/stub/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 24 + i32.const 4 + call $~lib/rt/stub/__alloc + call $~lib/rt/stub/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 call $~lib/map/Map#clear local.get $0 ) @@ -655,15 +632,13 @@ i32.ne if block $break|0 - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - end + i32.const 0 + local.set $2 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -684,7 +659,6 @@ i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -749,7 +723,6 @@ i32.add local.set $7 br $continue|0 - unreachable end unreachable end @@ -774,18 +747,14 @@ local.get $1 i32.eq if - block - i32.const 1 - local.set $2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 1 + local.set $2 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -798,18 +767,14 @@ i32.eq end if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $0 call $~lib/string/String#get:length @@ -819,18 +784,14 @@ call $~lib/string/String#get:length i32.ne if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $0 i32.const 0 @@ -882,16 +843,12 @@ i32.const 0 end if - block - local.get $3 - local.set $4 - local.get $1 - call $~lib/rt/stub/__release - local.get $4 - return - unreachable - end - unreachable + local.get $3 + local.set $4 + local.get $1 + call $~lib/rt/stub/__release + local.get $4 + return end local.get $3 i32.load offset=8 @@ -901,7 +858,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -1004,9 +960,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1 (result i32) - i32.const 12 - end + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -1016,9 +970,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2 (result i32) - i32.const 12 - end + i32.const 12 i32.mul i32.add local.set $7 @@ -1079,63 +1031,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/stub/__retain - drop - local.get $9 - call $~lib/rt/stub/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/stub/__retain + drop + local.get $9 + call $~lib/rt/stub/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/stub/__retain - drop - local.get $10 - call $~lib/rt/stub/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/stub/__retain + drop + local.get $10 + call $~lib/rt/stub/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -1215,19 +1158,15 @@ call $~lib/rt/stub/__retain local.set $3 local.get $3 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - end - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5 (result i32) - i32.const 12 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 12 i32.mul i32.add local.set $6 @@ -1352,7 +1291,6 @@ i32.and local.set $3 br $continue|0 - unreachable end unreachable end @@ -1388,9 +1326,7 @@ local.set $4 i32.const 0 local.get $4 - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) - i32.const 12 - end + i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 @@ -1400,9 +1336,7 @@ local.get $6 local.get $0 i32.load offset=16 - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) - i32.const 12 - end + i32.const 12 i32.mul i32.add local.set $7 @@ -1458,63 +1392,54 @@ local.get $8 i32.store local.get $8 - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $8 end local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) - i32.const 12 - end + i32.const 12 i32.add local.set $6 br $continue|0 - unreachable end unreachable end local.get $0 local.tee $9 - block (result i32) - local.get $3 - local.tee $10 - local.get $9 - i32.load - local.tee $9 - i32.ne - if - local.get $10 - call $~lib/rt/stub/__retain - drop - local.get $9 - call $~lib/rt/stub/__release - end + local.get $3 + local.tee $10 + local.get $9 + i32.load + local.tee $9 + i32.ne + if local.get $10 + call $~lib/rt/stub/__retain + drop + local.get $9 + call $~lib/rt/stub/__release end + local.get $10 i32.store local.get $0 local.get $1 i32.store offset=4 local.get $0 local.tee $10 - block (result i32) - local.get $5 - local.tee $11 - local.get $10 - i32.load offset=8 - local.tee $10 - i32.ne - if - local.get $11 - call $~lib/rt/stub/__retain - drop - local.get $10 - call $~lib/rt/stub/__release - end + local.get $5 + local.tee $11 + local.get $10 + i32.load offset=8 + local.tee $10 + i32.ne + if local.get $11 + call $~lib/rt/stub/__retain + drop + local.get $10 + call $~lib/rt/stub/__release end + local.get $11 i32.store offset=8 local.get $0 local.get $4 @@ -1600,19 +1525,15 @@ call $~lib/rt/stub/__retain local.set $3 local.get $3 - block (result i32) - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $6 - end - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) - i32.const 12 - end + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + i32.store offset=16 + local.get $6 + i32.const 12 i32.mul i32.add local.set $5 @@ -1661,51 +1582,41 @@ global.get $~lib/symbol/stringToId i32.eqz if - block (result i32) - i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#constructor - local.set $1 - global.get $~lib/symbol/stringToId - call $~lib/rt/stub/__release - local.get $1 - end + i32.const 0 + call $~lib/map/Map<~lib/string/String,usize>#constructor + local.set $1 + global.get $~lib/symbol/stringToId + call $~lib/rt/stub/__release + local.get $1 global.set $~lib/symbol/stringToId - block (result i32) - i32.const 0 - call $~lib/map/Map#constructor - local.set $1 - global.get $~lib/symbol/idToString - call $~lib/rt/stub/__release - local.get $1 - end + i32.const 0 + call $~lib/map/Map#constructor + local.set $1 + global.get $~lib/symbol/idToString + call $~lib/rt/stub/__release + local.get $1 global.set $~lib/symbol/idToString else global.get $~lib/symbol/stringToId local.get $0 call $~lib/map/Map<~lib/string/String,usize>#has if - block - global.get $~lib/symbol/stringToId - local.get $0 - call $~lib/map/Map<~lib/string/String,usize>#get - local.set $1 - local.get $0 - call $~lib/rt/stub/__release - local.get $1 - return - unreachable - end - unreachable + global.get $~lib/symbol/stringToId + local.get $0 + call $~lib/map/Map<~lib/string/String,usize>#get + local.set $1 + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + return end end - block (result i32) - global.get $~lib/symbol/nextId - local.tee $1 - i32.const 1 - i32.add - global.set $~lib/symbol/nextId - local.get $1 - end + global.get $~lib/symbol/nextId + local.tee $1 + i32.const 1 + i32.add + global.set $~lib/symbol/nextId + local.get $1 local.set $2 local.get $2 i32.eqz @@ -1764,10 +1675,6 @@ local.tee $2 else unreachable - call $~lib/rt/stub/__retain - unreachable - local.tee $4 - unreachable end call $~lib/rt/stub/__retain ) @@ -1807,22 +1714,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1830,7 +1733,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1888,7 +1790,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1955,22 +1856,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2002,226 +1899,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -2229,15 +1978,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -2245,15 +1994,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -2261,10 +2010,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2280,65 +2029,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2346,15 +2100,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2362,15 +2116,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2378,10 +2132,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2397,307 +2151,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2705,148 +2499,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2854,76 +2616,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2931,40 +2677,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2972,22 +2710,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -3059,26 +2793,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -3106,7 +2835,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -3116,22 +2844,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -3139,7 +2863,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -3178,7 +2901,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -3202,7 +2924,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -3224,7 +2945,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3245,21 +2965,19 @@ i32.const 0 i32.eq if - block (result i32) - i32.const 656 - local.tee $2 - local.get $1 - local.tee $3 - i32.ne - if - local.get $2 - call $~lib/rt/stub/__retain - drop - local.get $3 - call $~lib/rt/stub/__release - end + i32.const 656 + local.tee $2 + local.get $1 + local.tee $3 + i32.ne + if local.get $2 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release end + local.get $2 local.set $1 end local.get $0 @@ -3280,17 +2998,13 @@ i32.const 0 i32.eq if - block - i32.const 200 - call $~lib/rt/stub/__retain - local.set $2 - local.get $1 - call $~lib/rt/stub/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 200 + call $~lib/rt/stub/__retain + local.set $2 + local.get $1 + call $~lib/rt/stub/__release + local.get $2 + return end local.get $6 i32.const 1 @@ -3408,53 +3122,7 @@ br_if $case10|0 br $case11|0 end - block - block (result i32) - i32.const 216 - local.tee $3 - local.get $2 - local.tee $4 - i32.ne - if - local.get $3 - call $~lib/rt/stub/__retain - drop - local.get $4 - call $~lib/rt/stub/__release - end - local.get $3 - end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 256 - local.tee $4 - local.get $2 - local.tee $3 - i32.ne - if - local.get $4 - call $~lib/rt/stub/__retain - drop - local.get $3 - call $~lib/rt/stub/__release - end - local.get $4 - end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 312 + i32.const 216 local.tee $3 local.get $2 local.tee $4 @@ -3467,16 +3135,10 @@ call $~lib/rt/stub/__release end local.get $3 + local.set $2 + br $break|0 end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 344 + i32.const 256 local.tee $4 local.get $2 local.tee $3 @@ -3489,16 +3151,10 @@ call $~lib/rt/stub/__release end local.get $4 + local.set $2 + br $break|0 end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 376 + i32.const 312 local.tee $3 local.get $2 local.tee $4 @@ -3511,16 +3167,10 @@ call $~lib/rt/stub/__release end local.get $3 + local.set $2 + br $break|0 end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 408 + i32.const 344 local.tee $4 local.get $2 local.tee $3 @@ -3533,16 +3183,10 @@ call $~lib/rt/stub/__release end local.get $4 + local.set $2 + br $break|0 end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 440 + i32.const 376 local.tee $3 local.get $2 local.tee $4 @@ -3555,16 +3199,10 @@ call $~lib/rt/stub/__release end local.get $3 + local.set $2 + br $break|0 end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 472 + i32.const 408 local.tee $4 local.get $2 local.tee $3 @@ -3577,16 +3215,10 @@ call $~lib/rt/stub/__release end local.get $4 + local.set $2 + br $break|0 end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 504 + i32.const 440 local.tee $3 local.get $2 local.tee $4 @@ -3599,16 +3231,10 @@ call $~lib/rt/stub/__release end local.get $3 + local.set $2 + br $break|0 end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 544 + i32.const 472 local.tee $4 local.get $2 local.tee $3 @@ -3621,16 +3247,10 @@ call $~lib/rt/stub/__release end local.get $4 + local.set $2 + br $break|0 end - local.set $2 - br $break|0 - unreachable - end - unreachable - end - block - block (result i32) - i32.const 584 + i32.const 504 local.tee $3 local.get $2 local.tee $4 @@ -3643,40 +3263,62 @@ call $~lib/rt/stub/__release end local.get $3 + local.set $2 + br $break|0 end + i32.const 544 + local.tee $4 + local.get $2 + local.tee $3 + i32.ne + if + local.get $4 + call $~lib/rt/stub/__retain + drop + local.get $3 + call $~lib/rt/stub/__release + end + local.get $4 local.set $2 br $break|0 - unreachable end - unreachable - end - block - global.get $~lib/symbol/idToString - i32.const 0 + i32.const 584 + local.tee $3 + local.get $2 + local.tee $4 i32.ne - if (result i32) - global.get $~lib/symbol/idToString - local.get $1 - call $~lib/map/Map#has - else - i32.const 0 - end if - block (result i32) - global.get $~lib/symbol/idToString - local.get $1 - call $~lib/map/Map#get - local.set $4 - local.get $2 - call $~lib/rt/stub/__release - local.get $4 - end - local.set $2 + local.get $3 + call $~lib/rt/stub/__retain + drop + local.get $4 + call $~lib/rt/stub/__release end + local.get $3 + local.set $2 br $break|0 - unreachable end - unreachable + global.get $~lib/symbol/idToString + i32.const 0 + i32.ne + if (result i32) + global.get $~lib/symbol/idToString + local.get $1 + call $~lib/map/Map#has + else + i32.const 0 + end + if + global.get $~lib/symbol/idToString + local.get $1 + call $~lib/map/Map#get + local.set $4 + local.get $2 + call $~lib/rt/stub/__release + local.get $4 + local.set $2 + end + br $break|0 end i32.const 624 local.get $2 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index e367cd19..913493a6 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -2305,7 +2305,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $5 local.get $4 i32.load local.tee $2 @@ -2320,7 +2319,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $2 i32.store local.get $1 @@ -2431,7 +2429,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $5 local.get $4 i32.load local.tee $2 @@ -2446,7 +2443,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $2 i32.store local.get $1 @@ -2544,7 +2540,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -2621,7 +2616,6 @@ i32.and local.tee $2 i32.sub - local.set $3 local.get $0 local.get $2 i32.add @@ -2633,7 +2627,6 @@ i32.mul local.tee $0 i32.store - local.get $3 i32.const -4 i32.and local.tee $3 @@ -3486,7 +3479,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $5 local.get $1 i32.load local.tee $6 @@ -3501,7 +3493,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $2 i32.store local.get $1 @@ -9114,10 +9105,8 @@ i32.const 2 i32.rem_s i32.eqz - local.set $0 local.get $2 call $~lib/rt/pure/__release - local.get $0 ) (func $~lib/typedarray/Int8Array#every (; 204 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9383,10 +9372,8 @@ i32.const 2 i32.rem_s i32.eqz - local.set $0 local.get $2 call $~lib/rt/pure/__release - local.get $0 ) (func $~lib/typedarray/Int16Array#every (; 211 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9594,10 +9581,8 @@ i32.const 2 i32.rem_s i32.eqz - local.set $0 local.get $2 call $~lib/rt/pure/__release - local.get $0 ) (func $~lib/typedarray/Int32Array#every (; 216 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9754,10 +9739,8 @@ i64.rem_s i64.const 0 i64.eq - local.set $1 local.get $2 call $~lib/rt/pure/__release - local.get $1 ) (func $~lib/typedarray/Int64Array#every (; 220 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9867,10 +9850,8 @@ i64.rem_u i64.const 0 i64.eq - local.set $1 local.get $2 call $~lib/rt/pure/__release - local.get $1 ) (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> (; 223 ;) (type $FUNCSIG$v) (local $0 i32) @@ -10076,10 +10057,8 @@ call $~lib/math/NativeMathf.mod f32.const 0 f32.eq - local.set $1 local.get $2 call $~lib/rt/pure/__release - local.get $1 ) (func $~lib/typedarray/Float32Array#every (; 226 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -10344,10 +10323,8 @@ call $~lib/math/NativeMath.mod f64.const 0 f64.eq - local.set $1 local.get $2 call $~lib/rt/pure/__release - local.get $1 ) (func $~lib/typedarray/Float64Array#every (; 230 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11940,7 +11917,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $0 - local.set $5 local.get $2 i32.load local.tee $1 @@ -11955,7 +11931,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $1 i32.store local.get $0 @@ -12168,7 +12143,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $0 - local.set $5 local.get $2 i32.load local.tee $1 @@ -12183,7 +12157,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $1 i32.store local.get $0 @@ -12454,7 +12427,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $5 local.get $1 i32.load local.tee $6 @@ -12469,7 +12441,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $3 i32.store local.get $1 @@ -12750,7 +12721,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $5 local.get $1 i32.load local.tee $6 @@ -12765,7 +12735,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $3 i32.store local.get $1 @@ -13196,7 +13165,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $5 local.get $1 i32.load local.tee $6 @@ -13211,7 +13179,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $3 i32.store local.get $1 @@ -13480,7 +13447,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $5 local.get $1 i32.load local.tee $6 @@ -13495,7 +13461,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $3 i32.store local.get $1 @@ -13710,7 +13675,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $5 local.get $1 i32.load local.tee $6 @@ -13725,7 +13689,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $3 i32.store local.get $1 @@ -13997,7 +13960,6 @@ call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain local.tee $1 - local.set $5 local.get $1 i32.load local.tee $6 @@ -14012,7 +13974,6 @@ local.get $6 call $~lib/rt/pure/__release end - local.get $5 local.get $3 i32.store local.get $1 diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 34a36050..911996f6 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -228,85 +228,77 @@ i32.store offset=16 end local.get $1 - block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $0 + local.set $10 + local.get $4 + local.set $9 + local.get $5 + local.set $8 + local.get $10 + local.get $9 + i32.const 4 + i32.shl + local.get $8 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + i32.eq + if local.get $0 - local.set $10 + local.set $11 local.get $4 - local.set $9 + local.set $10 local.get $5 + local.set $9 + local.get $7 local.set $8 + local.get $11 local.get $10 - local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $9 i32.add i32.const 2 i32.shl i32.add - i32.load offset=96 - end - i32.eq - if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $9 - local.get $7 - local.set $8 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store offset=96 - end + local.get $8 + i32.store offset=96 local.get $7 i32.eqz if - block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) - local.get $0 - local.set $9 - local.get $4 - local.set $8 - local.get $9 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 local.set $9 - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $0 - local.set $8 - local.get $4 - local.set $11 - local.get $9 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $9 - local.set $10 - local.get $8 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - end + local.get $4 + local.set $8 + local.get $9 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $0 + local.set $8 + local.get $4 + local.set $11 + local.get $9 + i32.const 1 + local.get $5 + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $9 + local.set $10 + local.get $8 + local.get $11 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 local.get $9 i32.eqz if @@ -362,20 +354,18 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $3 - i32.const 16 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $3 + local.get $3 + i32.const 16 + i32.add + local.get $3 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -413,20 +403,18 @@ i32.or local.tee $2 i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 16 - i32.add - local.get $6 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $6 + local.get $6 + i32.const 16 + i32.add + local.get $6 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add local.set $4 local.get $4 i32.load @@ -437,14 +425,12 @@ i32.const 2 i32.and if - block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) - local.get $1 - local.set $6 - local.get $6 - i32.const 4 - i32.sub - i32.load - end + local.get $1 + local.set $6 + local.get $6 + i32.const 4 + i32.sub + i32.load local.set $6 local.get $6 i32.load @@ -597,24 +583,22 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) - local.get $0 - local.set $7 - local.get $9 - local.set $3 - local.get $10 - local.set $6 - local.get $7 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end + local.get $0 + local.set $7 + local.get $9 + local.set $3 + local.get $10 + local.set $6 + local.get $7 + local.get $3 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $11 local.get $1 i32.const 0 @@ -628,27 +612,25 @@ local.get $1 i32.store offset=16 end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $0 - local.set $12 - local.get $9 - local.set $7 - local.get $10 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $7 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - end + local.get $0 + local.set $12 + local.get $9 + local.set $7 + local.get $10 + local.set $3 + local.get $1 + local.set $6 + local.get $12 + local.get $7 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=96 local.get $0 local.get $0 i32.load @@ -657,36 +639,32 @@ i32.shl i32.or i32.store - block $~lib/rt/tlsf/SETSL|inlined.2 - local.get $0 - local.set $13 - local.get $9 - local.set $12 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $0 - local.set $3 - local.get $9 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end - i32.const 1 - local.get $10 - i32.shl - i32.or - local.set $7 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=4 - end + local.get $0 + local.set $13 + local.get $9 + local.set $12 + local.get $0 + local.set $3 + local.get $9 + local.set $6 + local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const 1 + local.get $10 + i32.shl + i32.or + local.set $7 + local.get $13 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -724,12 +702,10 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - end + local.get $0 + local.set $3 + local.get $3 + i32.load offset=1568 local.set $4 i32.const 0 local.set $5 @@ -826,15 +802,13 @@ i32.const 2 i32.or i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - end + local.get $0 + local.set $9 + local.get $4 + local.set $3 + local.get $9 + local.get $3 + i32.store offset=1568 local.get $0 local.get $8 call $~lib/rt/tlsf/insertBlock @@ -894,15 +868,13 @@ local.get $3 i32.const 0 i32.store - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - end + local.get $3 + local.set $5 + i32.const 0 + local.set $4 + local.get $5 + local.get $4 + i32.store offset=1568 block $break|0 i32.const 0 local.set $5 @@ -912,21 +884,19 @@ i32.lt_u i32.eqz br_if $break|0 - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $3 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - local.set $4 - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - end + local.get $3 + local.set $7 + local.get $5 + local.set $6 + i32.const 0 + local.set $4 + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=4 block $break|1 i32.const 0 local.set $7 @@ -936,33 +906,30 @@ i32.lt_u i32.eqz br_if $break|1 - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $3 - local.set $9 - local.get $5 - local.set $8 - local.get $7 - local.set $6 - i32.const 0 - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=96 - end + local.get $3 + local.set $9 + local.get $5 + local.set $8 + local.get $7 + local.set $6 + i32.const 0 + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $6 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store offset=96 local.get $7 i32.const 1 i32.add local.set $7 br $loop|1 - unreachable end unreachable end @@ -971,7 +938,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -1000,19 +966,11 @@ i32.const 1073741808 i32.ge_u if - block - block - i32.const 232 - i32.const 184 - i32.const 447 - i32.const 29 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 232 + i32.const 184 + i32.const 447 + i32.const 29 + call $~lib/builtins/abort unreachable end local.get $0 @@ -1109,18 +1067,16 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $5 + local.get $2 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 i32.const 0 i32.const -1 i32.xor @@ -1153,18 +1109,16 @@ local.get $5 i32.ctz local.set $2 - block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - end + local.get $0 + local.set $8 + local.get $2 + local.set $4 + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.set $6 local.get $6 i32.eqz @@ -1176,29 +1130,6 @@ call $~lib/builtins/abort unreachable end - block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - end - local.set $7 - end - else - block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) local.get $0 local.set $9 local.get $2 @@ -1216,7 +1147,26 @@ i32.shl i32.add i32.load offset=96 + local.set $7 end + else + local.get $0 + local.set $9 + local.get $2 + local.set $8 + local.get $6 + i32.ctz + local.set $4 + local.get $9 + local.get $8 + i32.const 4 + i32.shl + local.get $4 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $7 end local.get $7 @@ -1337,34 +1287,30 @@ i32.xor i32.and i32.store - block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end - block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) - local.get $1 - local.set $5 - local.get $5 - i32.const 16 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - end + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + local.get $1 + local.set $5 + local.get $5 + i32.const 16 + i32.add + local.get $5 + i32.load + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add i32.load i32.const 2 i32.const -1 @@ -1560,19 +1506,11 @@ i32.load i32.gt_u if - block - block - i32.const 336 - i32.const 392 - i32.const 22 - i32.const 27 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 392 + i32.const 22 + i32.const 27 + call $~lib/builtins/abort unreachable end local.get $1 @@ -1600,22 +1538,18 @@ end i32.eqz br_if $break|0 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 @@ -1623,7 +1557,6 @@ i32.sub local.set $2 br $continue|0 - unreachable end unreachable end @@ -1681,7 +1614,6 @@ i32.sub local.set $2 br $continue|1 - unreachable end unreachable end @@ -1748,22 +1680,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -1795,226 +1723,78 @@ br_if $case2|2 br $break|2 end - block - local.get $1 - i32.load - local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end - i32.load8_u - i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - block $break|3 - loop $continue|3 - local.get $2 - i32.const 17 - i32.ge_u - i32.eqz - br_if $break|3 - local.get $1 - i32.const 1 - i32.add - i32.load - local.set $4 - local.get $0 - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 5 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 4 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 9 - i32.add - i32.load - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.get $3 - i32.const 24 - i32.shr_u - local.get $4 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 13 - i32.add - i32.load - local.set $3 - local.get $0 - i32.const 12 - i32.add - local.get $4 - i32.const 24 - i32.shr_u - local.get $3 - i32.const 8 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 16 - i32.add - local.set $1 - local.get $0 - i32.const 16 - i32.add - local.set $0 - local.get $2 - i32.const 16 - i32.sub - local.set $2 - br $continue|3 - unreachable - end - unreachable - end - br $break|2 - unreachable - end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 2 + i32.const 3 i32.sub local.set $2 - block $break|4 - loop $continue|4 + block $break|3 + loop $continue|3 local.get $2 - i32.const 18 + i32.const 17 i32.ge_u i32.eqz - br_if $break|4 + br_if $break|3 local.get $1 - i32.const 2 + i32.const 1 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 6 + i32.const 5 i32.add i32.load local.set $3 @@ -2022,15 +1802,15 @@ i32.const 4 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 10 + i32.const 9 i32.add i32.load local.set $4 @@ -2038,15 +1818,15 @@ i32.const 8 i32.add local.get $3 - i32.const 16 + i32.const 24 i32.shr_u local.get $4 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $1 - i32.const 14 + i32.const 13 i32.add i32.load local.set $3 @@ -2054,10 +1834,10 @@ i32.const 12 i32.add local.get $4 - i32.const 16 + i32.const 24 i32.shr_u local.get $3 - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -2073,65 +1853,70 @@ i32.const 16 i32.sub local.set $2 - br $continue|4 - unreachable + br $continue|3 end unreachable end br $break|2 - unreachable end - unreachable - end - block local.get $1 i32.load local.set $3 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 local.get $2 - i32.const 1 + i32.const 2 i32.sub local.set $2 - block $break|5 - loop $continue|5 + block $break|4 + loop $continue|4 local.get $2 - i32.const 19 + i32.const 18 i32.ge_u i32.eqz - br_if $break|5 + br_if $break|4 local.get $1 - i32.const 3 + i32.const 2 i32.add i32.load local.set $4 local.get $0 local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 7 + i32.const 6 i32.add i32.load local.set $3 @@ -2139,15 +1924,15 @@ i32.const 4 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 11 + i32.const 10 i32.add i32.load local.set $4 @@ -2155,15 +1940,15 @@ i32.const 8 i32.add local.get $3 - i32.const 8 + i32.const 16 i32.shr_u local.get $4 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $1 - i32.const 15 + i32.const 14 i32.add i32.load local.set $3 @@ -2171,10 +1956,10 @@ i32.const 12 i32.add local.get $4 - i32.const 8 + i32.const 16 i32.shr_u local.get $3 - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -2190,307 +1975,347 @@ i32.const 16 i32.sub local.set $2 - br $continue|5 - unreachable + br $continue|4 end unreachable end br $break|2 + end + local.get $1 + i32.load + local.set $3 + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + block $break|5 + loop $continue|5 + local.get $2 + i32.const 19 + i32.ge_u + i32.eqz + br_if $break|5 + local.get $1 + i32.const 3 + i32.add + i32.load + local.set $4 + local.get $0 + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 7 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 4 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 11 + i32.add + i32.load + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.get $3 + i32.const 8 + i32.shr_u + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 15 + i32.add + i32.load + local.set $3 + local.get $0 + i32.const 12 + i32.add + local.get $4 + i32.const 8 + i32.shr_u + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $2 + i32.const 16 + i32.sub + local.set $2 + br $continue|5 + end unreachable end - unreachable + br $break|2 end end local.get $2 i32.const 16 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2498,148 +2323,116 @@ i32.const 8 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2647,76 +2440,60 @@ i32.const 4 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2724,40 +2501,32 @@ i32.const 2 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2765,22 +2534,18 @@ i32.const 1 i32.and if - block (result i32) - local.get $0 - local.tee $5 - i32.const 1 - i32.add - local.set $0 - local.get $5 - end - block (result i32) - local.get $1 - local.tee $5 - i32.const 1 - i32.add - local.set $1 - local.get $5 - end + local.get $0 + local.tee $5 + i32.const 1 + i32.add + local.set $0 + local.get $5 + local.get $1 + local.tee $5 + i32.const 1 + i32.add + local.set $1 + local.get $5 i32.load8_u i32.store8 end @@ -2852,26 +2617,21 @@ i32.const 1 i32.sub local.set $3 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 br $continue|0 - unreachable end unreachable end @@ -2899,7 +2659,6 @@ i32.add local.set $4 br $continue|1 - unreachable end unreachable end @@ -2909,22 +2668,18 @@ local.get $3 i32.eqz br_if $break|2 - block (result i32) - local.get $5 - local.tee $6 - i32.const 1 - i32.add - local.set $5 - local.get $6 - end - block (result i32) - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 - end + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 i32.load8_u i32.store8 local.get $3 @@ -2932,7 +2687,6 @@ i32.sub local.set $3 br $continue|2 - unreachable end unreachable end @@ -2971,7 +2725,6 @@ i32.load8_u i32.store8 br $continue|3 - unreachable end unreachable end @@ -2995,7 +2748,6 @@ i64.load i64.store br $continue|4 - unreachable end unreachable end @@ -3017,7 +2769,6 @@ i32.load8_u i32.store8 br $continue|5 - unreachable end unreachable end @@ -3264,19 +3015,11 @@ i32.shr_u i32.gt_u if - block - block - i32.const 80 - i32.const 128 - i32.const 14 - i32.const 56 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 80 + i32.const 128 + i32.const 14 + i32.const 56 + call $~lib/builtins/abort unreachable end local.get $1 @@ -3286,44 +3029,40 @@ i32.const 0 call $~lib/rt/tlsf/__alloc local.set $3 - block (result i32) - local.get $0 - i32.eqz - if - i32.const 12 - i32.const 2 - call $~lib/rt/tlsf/__alloc - call $~lib/rt/pure/__retain - local.set $0 - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 + local.get $0 + i32.eqz + if + i32.const 12 + i32.const 2 + call $~lib/rt/tlsf/__alloc + call $~lib/rt/pure/__retain + local.set $0 end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 local.tee $4 - block (result i32) - local.get $3 - local.tee $5 - local.get $4 - i32.load - local.tee $4 - i32.ne - if - local.get $5 - call $~lib/rt/pure/__retain - drop - local.get $4 - call $~lib/rt/pure/__release - end + local.get $3 + local.tee $5 + local.get $4 + i32.load + local.tee $4 + i32.ne + if local.get $5 + call $~lib/rt/pure/__retain + drop + local.get $4 + call $~lib/rt/pure/__release end + local.get $5 i32.store local.get $0 local.get $3 @@ -4118,19 +3857,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 443 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 443 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4150,19 +3881,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 437 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 437 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4257,23 +3980,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -4304,19 +4025,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 853 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 853 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -4412,23 +4125,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -4491,26 +4202,22 @@ i32.add f64.load local.set $6 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $4 - local.get $6 - local.get $2 - call_indirect (type $FUNCSIG$idd) - end + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $FUNCSIG$idd) i32.const 0 i32.lt_s if local.get $0 - block (result i32) - local.get $5 - local.tee $7 - i32.const 1 - i32.sub - local.set $5 - local.get $7 - end + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 i32.const 1 i32.add i32.const 3 @@ -4519,14 +4226,9 @@ local.get $6 f64.store else - block - br $break|1 - unreachable - end - unreachable + br $break|1 end br $continue|1 - unreachable end unreachable end @@ -4544,7 +4246,6 @@ i32.add local.set $3 br $loop|0 - unreachable end unreachable end @@ -4808,7 +4509,6 @@ i32.add local.set $5 br $continue|0 - unreachable end unreachable end @@ -4881,7 +4581,6 @@ i32.shr_s local.set $6 br $continue|1 - unreachable end unreachable end @@ -4903,14 +4602,12 @@ i32.add f64.load local.set $9 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $8 - local.get $9 - local.get $2 - call_indirect (type $FUNCSIG$idd) - end + i32.const 2 + global.set $~lib/argc + local.get $8 + local.get $9 + local.get $2 + call_indirect (type $FUNCSIG$idd) i32.const 0 i32.lt_s if @@ -4956,7 +4653,6 @@ i32.sub local.set $5 br $loop|0 - unreachable end unreachable end @@ -5019,7 +4715,6 @@ local.get $5 local.set $6 br $continue|3 - unreachable end unreachable end @@ -5040,14 +4735,12 @@ i32.add f64.load local.set $8 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $9 - local.get $8 - local.get $2 - call_indirect (type $FUNCSIG$idd) - end + i32.const 2 + global.set $~lib/argc + local.get $9 + local.get $8 + local.get $2 + call_indirect (type $FUNCSIG$idd) i32.const 0 i32.lt_s if @@ -5089,7 +4782,6 @@ i32.shr_s local.set $6 br $continue|4 - unreachable end unreachable end @@ -5098,7 +4790,6 @@ i32.sub local.set $7 br $loop|2 - unreachable end unreachable end @@ -5138,16 +4829,12 @@ i32.const 1 i32.le_s if - block - local.get $3 - local.set $5 - local.get $3 - call $~lib/rt/pure/__release - local.get $5 - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - unreachable - end - unreachable + local.get $3 + local.set $5 + local.get $3 + call $~lib/rt/pure/__release + local.get $5 + br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 end local.get $3 i32.load offset=4 @@ -5162,14 +4849,12 @@ local.get $5 f64.load local.set $7 - block (result i32) - i32.const 2 - global.set $~lib/argc - local.get $6 - local.get $7 - local.get $2 - call_indirect (type $FUNCSIG$idd) - end + i32.const 2 + global.set $~lib/argc + local.get $6 + local.get $7 + local.get $2 + call_indirect (type $FUNCSIG$idd) i32.const 0 i32.lt_s if @@ -5187,27 +4872,25 @@ local.get $8 br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 end - block $~lib/util/sort/SORT|inlined.0 - local.get $5 - local.set $10 - local.get $4 - local.set $9 - local.get $2 - local.set $8 + local.get $5 + local.set $10 + local.get $4 + local.set $9 + local.get $2 + local.set $8 + local.get $9 + i32.const 256 + i32.lt_s + if + local.get $10 local.get $9 - i32.const 256 - i32.lt_s - if - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/sort/insertionSort - else - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/sort/weakHeapSort - end + local.get $8 + call $~lib/util/sort/insertionSort + else + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/sort/weakHeapSort end local.get $3 end @@ -5272,19 +4955,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 847 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 847 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -5301,19 +4976,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 197 - i32.const 44 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 197 + i32.const 44 + call $~lib/builtins/abort unreachable end local.get $0 @@ -5341,19 +5008,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 191 - i32.const 44 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 191 + i32.const 44 + call $~lib/builtins/abort unreachable end local.get $0 @@ -5368,19 +5027,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 33 - i32.const 44 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 33 + i32.const 44 + call $~lib/builtins/abort unreachable end local.get $0 @@ -5527,19 +5178,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 27 - i32.const 44 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 27 + i32.const 44 + call $~lib/builtins/abort unreachable end local.get $0 @@ -5565,19 +5208,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 512 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 512 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -5600,27 +5235,21 @@ call $~lib/array/Array#get:length i32.ne if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end block $break|0 - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - end + i32.const 0 + local.set $2 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -5635,25 +5264,20 @@ call $~lib/array/Array#__get i32.ne if - block - i32.const 0 - local.set $4 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + local.set $4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $2 i32.const 1 i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -5749,23 +5373,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -5881,7 +5503,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -5908,19 +5529,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 512 - i32.const 109 - i32.const 61 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 512 + i32.const 109 + i32.const 61 + call $~lib/builtins/abort unreachable end local.get $0 @@ -5943,27 +5556,21 @@ call $~lib/array/Array#get:length i32.ne if - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $2 - return - unreachable - end - unreachable + i32.const 0 + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $2 + return end block $break|0 - block - i32.const 0 - local.set $2 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - end + i32.const 0 + local.set $2 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 loop $loop|0 local.get $2 local.get $3 @@ -5978,25 +5585,20 @@ call $~lib/array/Array#__get i32.ne if - block - i32.const 0 - local.set $4 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $4 - return - unreachable - end - unreachable + i32.const 0 + local.set $4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $4 + return end local.get $2 i32.const 1 i32.add local.set $2 br $loop|0 - unreachable end unreachable end @@ -6039,41 +5641,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Int8Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int8Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -6137,19 +5734,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 115 - i32.const 44 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 115 + i32.const 44 + call $~lib/builtins/abort unreachable end local.get $0 @@ -6190,41 +5779,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint8Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -6311,41 +5895,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -6409,19 +5988,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 279 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 279 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -6464,41 +6035,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int16Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -6564,19 +6130,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 361 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 361 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -6619,41 +6177,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint16Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint16Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -6740,41 +6293,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int32Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -6836,19 +6384,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 525 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 525 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -6891,41 +6431,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint32Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint32Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -6987,19 +6522,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 607 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 607 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -7043,41 +6570,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Int64Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Int64Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i64) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$jjjii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$jjjii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -7139,19 +6661,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 689 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 689 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -7195,41 +6709,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Uint64Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Uint64Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result i64) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$jjjii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$jjjii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -7291,19 +6800,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 771 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 771 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -7347,41 +6848,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Float32Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Float32Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result f32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$fffii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$fffii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -7467,41 +6963,36 @@ i32.load offset=4 local.set $6 block $break|0 - block - i32.const 0 - local.set $7 - local.get $5 - call $~lib/typedarray/Float64Array#get:length - local.set $8 - end + i32.const 0 + local.set $7 + local.get $5 + call $~lib/typedarray/Float64Array#get:length + local.set $8 loop $loop|0 local.get $7 local.get $8 i32.lt_s i32.eqz br_if $break|0 - block (result f64) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$dddii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$dddii) local.set $3 local.get $7 i32.const 1 i32.add local.set $7 br $loop|0 - unreachable end unreachable end @@ -7596,28 +7087,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -7716,28 +7204,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -7834,28 +7319,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -7952,28 +7434,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -8072,28 +7551,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -8190,28 +7666,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -8306,28 +7779,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$iiiii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$iiiii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -8423,28 +7893,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i64) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$jjjii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$jjjii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -8540,28 +8007,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result i64) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$jjjii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$jjjii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -8657,28 +8121,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result f32) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$fffii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$fffii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -8774,28 +8235,25 @@ i32.ge_s i32.eqz br_if $break|0 - block (result f64) - i32.const 4 - global.set $~lib/argc - local.get $3 - local.get $6 - local.get $7 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $7 - local.get $5 - local.get $4 - call_indirect (type $FUNCSIG$dddii) - end + i32.const 4 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $7 + local.get $5 + local.get $4 + call_indirect (type $FUNCSIG$dddii) local.set $3 local.get $7 i32.const 1 i32.sub local.set $7 br $loop|0 - unreachable end unreachable end @@ -8905,27 +8363,24 @@ i32.const 0 i32.shl i32.add - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) i32.store8 local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -9068,27 +8523,24 @@ i32.const 0 i32.shl i32.add - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) i32.store8 local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -9106,19 +8558,11 @@ i32.load offset=8 i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 109 - i32.const 44 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 109 + i32.const 44 + call $~lib/builtins/abort unreachable end local.get $0 @@ -9258,27 +8702,24 @@ i32.const 0 i32.shl i32.add - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) i32.store8 local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -9421,27 +8862,24 @@ i32.const 1 i32.shl i32.add - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) i32.store16 local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -9461,19 +8899,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 273 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 273 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -9615,27 +9045,24 @@ i32.const 1 i32.shl i32.add - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) i32.store16 local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -9655,19 +9082,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 355 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 355 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -9809,27 +9228,24 @@ i32.const 2 i32.shl i32.add - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) i32.store local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -9972,27 +9388,24 @@ i32.const 2 i32.shl i32.add - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) i32.store local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -10012,19 +9425,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 519 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 519 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -10166,27 +9571,24 @@ i32.const 3 i32.shl i32.add - block (result i64) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$jjii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$jjii) i64.store local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -10206,19 +9608,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 601 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 601 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -10360,27 +9754,24 @@ i32.const 3 i32.shl i32.add - block (result i64) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$jjii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$jjii) i64.store local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -10400,19 +9791,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 683 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 683 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -10554,27 +9937,24 @@ i32.const 2 i32.shl i32.add - block (result f32) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ffii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ffii) f32.store local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -10594,19 +9974,11 @@ i32.shr_u i32.ge_u if - block - block - i32.const 336 - i32.const 432 - i32.const 765 - i32.const 63 - call $~lib/builtins/abort - unreachable - unreachable - end - unreachable - unreachable - end + i32.const 336 + i32.const 432 + i32.const 765 + i32.const 63 + call $~lib/builtins/abort unreachable end local.get $0 @@ -10748,27 +10120,24 @@ i32.const 3 i32.shl i32.add - block (result f64) - i32.const 3 - global.set $~lib/argc - local.get $5 - local.get $9 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $9 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ddii) - end + i32.const 3 + global.set $~lib/argc + local.get $5 + local.get $9 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $9 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ddii) f64.store local.get $9 i32.const 1 i32.add local.set $9 br $loop|0 - unreachable end unreachable end @@ -10889,51 +10258,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -11054,51 +10414,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -11217,51 +10568,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -11382,51 +10724,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -11547,51 +10880,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -11708,51 +11032,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -11867,51 +11182,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -12026,51 +11332,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ijii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ijii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -12185,51 +11482,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ijii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ijii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -12344,51 +11632,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ifii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ifii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -12503,51 +11782,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$idii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$idii) if - block - i32.const 1 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 - unreachable - end - unreachable + i32.const 1 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -12666,51 +11936,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -12830,51 +12091,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -12992,51 +12244,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -13156,51 +12399,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -13320,51 +12554,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -13480,51 +12705,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -13638,51 +12854,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -13796,51 +13003,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ijii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ijii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -13954,51 +13152,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ijii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ijii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -14112,51 +13301,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ifii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ifii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -14270,51 +13450,42 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 i32.lt_s i32.eqz br_if $break|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$idii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$idii) if - block - local.get $5 - local.set $7 - local.get $3 - call $~lib/rt/pure/__release - local.get $7 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - unreachable - end - unreachable + local.get $5 + local.set $7 + local.get $3 + call $~lib/rt/pure/__release + local.get $7 + br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 end local.get $5 i32.const 1 i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -14434,13 +13605,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -14448,26 +13617,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -14481,7 +13644,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -14604,13 +13766,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -14618,26 +13778,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -14651,7 +13805,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -14772,13 +13925,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -14786,26 +13937,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -14819,7 +13964,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -14942,13 +14086,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -14956,26 +14098,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -14989,7 +14125,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -15112,13 +14247,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -15126,26 +14259,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -15159,7 +14286,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -15278,13 +14404,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -15292,26 +14416,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -15325,7 +14443,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -15442,13 +14559,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -15456,26 +14571,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$iiii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$iiii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -15489,7 +14598,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -15606,13 +14714,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -15620,26 +14726,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ijii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ijii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -15653,7 +14753,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -15770,13 +14869,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -15784,26 +14881,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ijii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ijii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -15817,7 +14908,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -16087,7 +15177,6 @@ i32.sub local.set $4 br $continue|0 - unreachable end unreachable end @@ -16187,13 +15276,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -16201,26 +15288,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$ifii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$ifii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -16234,7 +15315,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -16504,7 +15584,6 @@ i64.sub local.set $4 br $continue|0 - unreachable end unreachable end @@ -16606,13 +15685,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -16620,26 +15697,20 @@ i32.eqz br_if $break|0 block $continue|0 - block (result i32) - i32.const 3 - global.set $~lib/argc - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $5 - local.get $3 - local.get $2 - call_indirect (type $FUNCSIG$idii) - end + i32.const 3 + global.set $~lib/argc + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $5 + local.get $3 + local.get $2 + call_indirect (type $FUNCSIG$idii) if - block - br $continue|0 - unreachable - end - unreachable + br $continue|0 end i32.const 0 local.set $7 @@ -16653,7 +15724,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -16813,13 +15883,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -16843,7 +15911,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -16984,13 +16051,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -17014,7 +16079,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -17149,13 +16213,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -17179,7 +16241,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -17318,13 +16379,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -17348,7 +16407,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -17489,13 +16547,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint16Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -17519,7 +16575,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -17650,13 +16705,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -17680,7 +16733,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -17805,13 +16857,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -17835,7 +16885,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -17961,13 +17010,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Int64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -17991,7 +17038,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -18120,13 +17166,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Uint64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -18150,7 +17194,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -18279,13 +17322,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float32Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -18309,7 +17350,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -18438,13 +17478,11 @@ i32.load offset=4 local.set $4 block $break|0 - block - i32.const 0 - local.set $5 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $6 - end + i32.const 0 + local.set $5 + local.get $3 + call $~lib/typedarray/Float64Array#get:length + local.set $6 loop $loop|0 local.get $5 local.get $6 @@ -18468,7 +17506,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -18544,15 +17581,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -18581,18 +17616,15 @@ local.get $6 local.get $7 i32.store8 - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -18658,7 +17690,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -18701,7 +17732,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -18798,15 +17828,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint8Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint8Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -18835,18 +17863,15 @@ local.get $6 local.get $7 i32.store8 - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -18936,23 +17961,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -19031,7 +18054,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -19072,7 +18094,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -19169,15 +18190,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -19206,18 +18225,15 @@ local.get $6 local.get $7 i32.store8 - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -19307,23 +18323,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -19402,7 +18416,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -19443,7 +18456,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -19540,15 +18552,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -19577,18 +18587,15 @@ local.get $6 local.get $7 i32.store16 - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -19678,23 +18685,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -19777,7 +18782,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -19820,7 +18824,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -19917,15 +18920,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint16Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint16Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -19954,18 +18955,15 @@ local.get $6 local.get $7 i32.store16 - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -20055,23 +19053,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -20150,7 +19146,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -20191,7 +19186,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -20288,15 +19282,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -20325,18 +19317,15 @@ local.get $6 local.get $7 i32.store - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -20394,7 +19383,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -20433,7 +19421,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -20530,15 +19517,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint32Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint32Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -20567,18 +19552,15 @@ local.get $6 local.get $7 i32.store - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -20668,23 +19650,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -20759,7 +19739,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -20798,7 +19777,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -20895,15 +19873,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -20932,18 +19908,15 @@ local.get $6 local.get $7 i64.store - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -21033,23 +20006,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -21126,7 +20097,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -21166,7 +20136,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -21263,15 +20232,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Uint64Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Uint64Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -21300,18 +20267,15 @@ local.get $6 local.get $7 i64.store - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -21401,23 +20365,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -21494,7 +20456,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -21534,7 +20495,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -21631,15 +20591,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Float32Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Float32Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -21668,18 +20626,15 @@ local.get $6 local.get $7 f32.store - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -21769,23 +20724,21 @@ local.set $7 local.get $7 local.tee $8 - block (result i32) - local.get $5 - i32.load - local.tee $9 - local.get $8 - i32.load - local.tee $8 - i32.ne - if - local.get $9 - call $~lib/rt/pure/__retain - drop - local.get $8 - call $~lib/rt/pure/__release - end + local.get $5 + i32.load + local.tee $9 + local.get $8 + i32.load + local.tee $8 + i32.ne + if local.get $9 + call $~lib/rt/pure/__retain + drop + local.get $8 + call $~lib/rt/pure/__release end + local.get $9 i32.store local.get $7 local.get $5 @@ -21862,7 +20815,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -21902,7 +20854,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -21999,15 +20950,13 @@ i32.load offset=4 local.set $2 block $break|0 - block - i32.const 0 - local.set $3 - local.get $1 - call $~lib/typedarray/Float64Array#get:length - i32.const 1 - i32.sub - local.set $4 - end + i32.const 0 + local.set $3 + local.get $1 + call $~lib/typedarray/Float64Array#get:length + i32.const 1 + i32.sub + local.set $4 loop $loop|0 local.get $3 local.get $4 @@ -22036,18 +20985,15 @@ local.get $6 local.get $7 f64.store - block - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $4 br $loop|0 - unreachable end unreachable end @@ -22107,7 +21053,6 @@ i32.add local.set $5 br $loop|0 - unreachable end unreachable end @@ -22147,7 +21092,6 @@ i32.add local.set $5 br $loop|1 - unreachable end unreachable end @@ -22376,1096 +21320,1080 @@ call $std/typedarray/testInstantiate i32.const 5 call $std/typedarray/testInstantiate - block + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 + i32.const 24 + i32.const 95 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $0 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 95 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 96 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 3 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 97 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 98 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 99 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 100 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - block (result i32) - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#subarray - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - end - local.set $0 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 103 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 104 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 1 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 105 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 106 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable end - block + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - i32.const 8 - call $~lib/typedarray/Float64Array#constructor - local.set $0 - local.get $0 + i32.const 24 + i32.const 96 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 3 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set + i32.const 24 + i32.const 97 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 98 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 99 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 100 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + local.set $0 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 103 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 104 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 1 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 105 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 106 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.set $0 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 3 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.set $1 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + local.set $0 + local.get $0 + call $~lib/typedarray/Float64Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 122 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.const 8 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 123 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 4 + i32.const 8 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 124 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~lib/argc + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) local.get $0 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 2 - f64.const 7 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 3 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 5 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 6 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 7 - f64.const 8 - call $~lib/typedarray/Float64Array#__set - block (result i32) - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Float64Array#subarray - local.set $1 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - end - local.set $0 - local.get $0 - call $~lib/typedarray/Float64Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 122 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 2 - i32.const 8 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 123 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 4 - i32.const 8 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 124 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $~lib/argc - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#sort|trampoline - call $~lib/rt/pure/__release - local.get $0 - i32.const 0 call $~lib/typedarray/Float64Array#__get - f64.const 4 + f64.const 5 f64.eq - if (result i32) - local.get $0 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $0 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq - else - i32.const 0 - end - if (result i32) - local.get $0 - 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 24 - i32.const 126 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release + else + i32.const 0 end - block - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.const -32 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set + if (result i32) local.get $0 i32.const 2 - i32.const 256 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 135 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 136 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 255 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 137 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release end - block - i32.const 0 - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.set $0 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set + if (result i32) local.get $0 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + else i32.const 0 - i32.const 14 - i32.const 488 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $2 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 149 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 560 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 152 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 584 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 155 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 608 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 158 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 632 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 161 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.set $1 - local.get $1 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int8Array#fill - call $~lib/rt/pure/__release - local.get $1 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 165 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 166 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 167 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - i32.const 0 - i32.const 14 - i32.const 656 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 168 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 5 - i32.const 0 - i32.const 14 - i32.const 680 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $9 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 169 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/pure/__release - local.get $2 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $9 - call $~lib/rt/pure/__release end - block + i32.eqz + if i32.const 0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.set $9 - local.get $9 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 1 + i32.const 24 + i32.const 126 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - local.get $9 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 704 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $1 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 181 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 744 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $6 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 184 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 784 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $5 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 187 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 2 - i32.const -2 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 824 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $4 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 190 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 864 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $3 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 193 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.set $8 - local.get $8 - i32.const 0 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Int32Array#fill - call $~lib/rt/pure/__release - local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 197 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 198 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 3 - i32.const 4 - i32.mul - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 199 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 3 - i32.const 2 - i32.const 15 - i32.const 904 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $0 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 200 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $9 - i32.const 5 - i32.const 2 - i32.const 15 - i32.const 936 - call $~lib/rt/__allocArray - call $~lib/rt/pure/__retain - local.tee $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 201 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $9 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - local.get $6 - call $~lib/rt/pure/__release - local.get $5 - call $~lib/rt/pure/__release - local.get $4 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $7 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable end - block + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 0 + i32.eq + i32.eqz + if i32.const 0 - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.set $7 - local.get $7 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 1 + i32.const 24 + i32.const 135 i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 5 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $7 - i32.const 1 - i32.const 6 - call $~lib/typedarray/Int8Array#subarray - local.set $0 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 222 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/typedarray/Int8Array#get:length - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 223 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 224 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 5 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 225 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.const 5 - call $~lib/typedarray/Int8Array#subarray - local.set $8 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 228 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/typedarray/Int8Array#get:length - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 229 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 2 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 230 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 231 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.set $3 - local.get $3 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 234 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $3 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 235 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 236 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 237 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - local.get $7 - call $~lib/rt/pure/__release - local.get $0 - call $~lib/rt/pure/__release - local.get $8 - call $~lib/rt/pure/__release - local.get $3 - call $~lib/rt/pure/__release + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 136 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 137 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.set $0 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 488 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $2 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 149 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 560 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 152 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 584 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 155 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 608 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 158 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 632 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 161 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.set $1 + local.get $1 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int8Array#fill + call $~lib/rt/pure/__release + local.get $1 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 165 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 166 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 167 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + i32.const 0 + i32.const 14 + i32.const 656 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 168 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 5 + i32.const 0 + i32.const 14 + i32.const 680 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $9 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 169 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $9 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.set $9 + local.get $9 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + local.get $9 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 704 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $1 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 181 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 744 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $6 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 184 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 784 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $5 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 187 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 2 + i32.const -2 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 824 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $4 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 190 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 864 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $3 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 193 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.set $8 + local.get $8 + i32.const 0 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/typedarray/Int32Array#fill + call $~lib/rt/pure/__release + local.get $8 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 197 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 198 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 3 + i32.const 4 + i32.mul + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 199 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 3 + i32.const 2 + i32.const 15 + i32.const 904 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $0 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 200 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 5 + i32.const 2 + i32.const 15 + i32.const 936 + call $~lib/rt/__allocArray + call $~lib/rt/pure/__retain + local.tee $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 201 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + local.get $6 + call $~lib/rt/pure/__release + local.get $5 + call $~lib/rt/pure/__release + local.get $4 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $7 + call $~lib/rt/pure/__release + i32.const 0 + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.set $7 + local.get $7 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $7 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.set $0 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 222 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/typedarray/Int8Array#get:length + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 223 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 224 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 5 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 225 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.set $8 + local.get $8 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 228 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/typedarray/Int8Array#get:length + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 229 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 230 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 231 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.set $3 + local.get $3 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 234 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 235 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 236 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 237 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $7 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release + local.get $8 + call $~lib/rt/pure/__release + local.get $3 + call $~lib/rt/pure/__release call $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> call $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> call $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> @@ -23738,103 +22666,83 @@ br_if $case4|0 br $case5|0 end - block - local.get $2 - call $~lib/rt/pure/decrement - br $break|0 - unreachable - end - unreachable - end - block local.get $2 - i32.load offset=4 - i32.const 268435455 - i32.and - i32.const 0 - i32.gt_u - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 75 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.sub - i32.store offset=4 - local.get $2 - call $~lib/rt/pure/markGray + call $~lib/rt/pure/decrement br $break|0 + end + local.get $2 + i32.load offset=4 + i32.const 268435455 + i32.and + i32.const 0 + i32.gt_u + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 75 + i32.const 17 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/scan + local.get $2 + i32.load offset=4 + i32.const 1 + i32.sub + i32.store offset=4 + local.get $2 + call $~lib/rt/pure/markGray br $break|0 - unreachable - end - unreachable - end - block - local.get $2 - i32.load offset=4 - local.set $3 - local.get $3 - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - local.get $3 - i32.const 1 - i32.add - i32.const 268435455 - i32.const -1 - i32.xor - i32.and - i32.eq - i32.eqz - if - i32.const 0 - i32.const 288 - i32.const 86 - i32.const 6 - call $~lib/builtins/abort - unreachable end local.get $2 - local.get $3 - i32.const 1 - i32.add - i32.store offset=4 - local.get $3 - i32.const 1879048192 - i32.and - i32.const 0 - i32.ne - if - local.get $2 - call $~lib/rt/pure/scanBlack - end + call $~lib/rt/pure/scan br $break|0 + end + local.get $2 + i32.load offset=4 + local.set $3 + local.get $3 + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + local.get $3 + i32.const 1 + i32.add + i32.const 268435455 + i32.const -1 + i32.xor + i32.and + i32.eq + i32.eqz + if + i32.const 0 + i32.const 288 + i32.const 86 + i32.const 6 + call $~lib/builtins/abort unreachable end - unreachable - end - block local.get $2 - call $~lib/rt/pure/collectWhite + local.get $3 + i32.const 1 + i32.add + i32.store offset=4 + local.get $3 + i32.const 1879048192 + i32.and + i32.const 0 + i32.ne + if + local.get $2 + call $~lib/rt/pure/scanBlack + end br $break|0 - unreachable end - unreachable + local.get $2 + call $~lib/rt/pure/collectWhite + br $break|0 end i32.const 0 i32.eqz @@ -23851,98 +22759,42 @@ (func $~lib/rt/__visit_members (; 401 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break - block - end - block $switch$1$leave - block $switch$1$default - block $switch$1$case$17 - block $switch$1$case$16 - block $switch$1$case$4 - block $switch$1$case$2 - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$16 $switch$1$case$17 $switch$1$default - end - block - block - return - unreachable - end - unreachable - unreachable - end - unreachable - end - block - br $block$4$break - unreachable - end - unreachable - end - block - block + block $switch$1$default + block $switch$1$case$17 + block $switch$1$case$16 + block $switch$1$case$4 + block $switch$1$case$2 local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable + i32.const 8 + i32.sub + i32.load + br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$4 $switch$1$case$16 $switch$1$case$17 $switch$1$default end - unreachable - unreachable + return end - unreachable + br $block$4$break end - block - block - local.get $0 - local.get $1 - call $~lib/array/Array#__visit_impl - block - br $block$4$break - unreachable - end - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - block - block - unreachable - unreachable - end - unreachable - unreachable - end - unreachable - end - end - block - block - local.get $0 - i32.load - local.tee $2 - if - local.get $2 + local.get $0 local.get $1 - call $~lib/rt/pure/__visit + call $~lib/array/Array#__visit_impl + br $block$4$break end - return - unreachable + local.get $0 + local.get $1 + call $~lib/array/Array#__visit_impl + br $block$4$break end unreachable - unreachable end - unreachable + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/pure/__visit + end + return ) (func $null (; 402 ;) (type $FUNCSIG$v) ) diff --git a/tests/compiler/switch.untouched.wat b/tests/compiler/switch.untouched.wat index 0c9d3857..f3e60871 100644 --- a/tests/compiler/switch.untouched.wat +++ b/tests/compiler/switch.untouched.wat @@ -11,46 +11,41 @@ (start $start) (func $switch/doSwitch (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - local.set $1 - local.get $1 - i32.const 1 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 0 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case3|0 - local.get $1 - i32.const 3 - i32.eq - br_if $case4|0 - br $case2|0 - end + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + local.set $1 + local.get $1 i32.const 1 - return + i32.eq + br_if $case0|0 + local.get $1 + i32.const 0 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case3|0 + local.get $1 + i32.const 3 + i32.eq + br_if $case4|0 + br $case2|0 end + i32.const 1 + return end - i32.const 0 - return end + i32.const 0 + return end - i32.const 23 - return - unreachable end - unreachable - unreachable + i32.const 23 + return ) (func $switch/doSwitchDefaultOmitted (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) @@ -96,11 +91,7 @@ br_if $case0|0 br $case1|0 end - block - br $break|0 - unreachable - end - unreachable + br $break|0 end i32.const 2 return @@ -123,49 +114,41 @@ i32.const 1 return end - block - br $break|0 - unreachable - end - unreachable + br $break|0 end i32.const 2 ) (func $switch/doSwitchFallThroughCase (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - block $break|0 - block $case1|0 - block $case0|0 - local.get $0 - 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 $0 + 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 ) (func $switch/doSwitchFallThroughDefault (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) - block $break|0 - block $case1|0 - block $case0|0 - local.get $0 - 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 $0 + 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 ) diff --git a/tests/compiler/unary.untouched.wat b/tests/compiler/unary.untouched.wat index 44abc69a..e4196758 100644 --- a/tests/compiler/unary.untouched.wat +++ b/tests/compiler/unary.untouched.wat @@ -86,39 +86,31 @@ i32.const -1 i32.xor global.set $unary/i - block (result i32) - global.get $unary/i - i32.const 1 - i32.add - global.set $unary/i - global.get $unary/i - end + global.get $unary/i + i32.const 1 + i32.add global.set $unary/i - block (result i32) - global.get $unary/i - i32.const 1 - i32.sub - global.set $unary/i - global.get $unary/i - end + global.get $unary/i global.set $unary/i - block (result i32) - global.get $unary/i - local.tee $0 - i32.const 1 - i32.add - global.set $unary/i - local.get $0 - end + global.get $unary/i + i32.const 1 + i32.sub global.set $unary/i - block (result i32) - global.get $unary/i - local.tee $0 - i32.const 1 - i32.sub - global.set $unary/i - local.get $0 - end + global.get $unary/i + global.set $unary/i + global.get $unary/i + local.tee $0 + i32.const 1 + i32.add + global.set $unary/i + local.get $0 + global.set $unary/i + global.get $unary/i + local.tee $0 + i32.const 1 + i32.sub + global.set $unary/i + local.get $0 global.set $unary/i global.get $unary/I drop @@ -175,39 +167,31 @@ i64.const -1 i64.xor global.set $unary/I - block (result i64) - global.get $unary/I - i64.const 1 - i64.add - global.set $unary/I - global.get $unary/I - end + global.get $unary/I + i64.const 1 + i64.add global.set $unary/I - block (result i64) - global.get $unary/I - i64.const 1 - i64.sub - global.set $unary/I - global.get $unary/I - end + global.get $unary/I global.set $unary/I - block (result i64) - global.get $unary/I - local.tee $1 - i64.const 1 - i64.add - global.set $unary/I - local.get $1 - end + global.get $unary/I + i64.const 1 + i64.sub global.set $unary/I - block (result i64) - global.get $unary/I - local.tee $1 - i64.const 1 - i64.sub - global.set $unary/I - local.get $1 - end + global.get $unary/I + global.set $unary/I + global.get $unary/I + local.tee $1 + i64.const 1 + i64.add + global.set $unary/I + local.get $1 + global.set $unary/I + global.get $unary/I + local.tee $1 + i64.const 1 + i64.sub + global.set $unary/I + local.get $1 global.set $unary/I global.get $unary/f drop @@ -251,39 +235,31 @@ f32.const 0 f32.eq global.set $unary/i - block (result f32) - global.get $unary/f - f32.const 1 - f32.add - global.set $unary/f - global.get $unary/f - end + global.get $unary/f + f32.const 1 + f32.add global.set $unary/f - block (result f32) - global.get $unary/f - f32.const 1 - f32.sub - global.set $unary/f - global.get $unary/f - end + global.get $unary/f global.set $unary/f - block (result f32) - global.get $unary/f - local.tee $2 - f32.const 1 - f32.add - global.set $unary/f - local.get $2 - end + global.get $unary/f + f32.const 1 + f32.sub global.set $unary/f - block (result f32) - global.get $unary/f - local.tee $2 - f32.const 1 - f32.sub - global.set $unary/f - local.get $2 - end + global.get $unary/f + global.set $unary/f + global.get $unary/f + local.tee $2 + f32.const 1 + f32.add + global.set $unary/f + local.get $2 + global.set $unary/f + global.get $unary/f + local.tee $2 + f32.const 1 + f32.sub + global.set $unary/f + local.get $2 global.set $unary/f global.get $unary/F drop @@ -329,39 +305,31 @@ f64.eq i64.extend_i32_u global.set $unary/I - block (result f64) - global.get $unary/F - f64.const 1 - f64.add - global.set $unary/F - global.get $unary/F - end + global.get $unary/F + f64.const 1 + f64.add global.set $unary/F - block (result f64) - global.get $unary/F - f64.const 1 - f64.sub - global.set $unary/F - global.get $unary/F - end + global.get $unary/F global.set $unary/F - block (result f64) - global.get $unary/F - local.tee $3 - f64.const 1 - f64.add - global.set $unary/F - local.get $3 - end + global.get $unary/F + f64.const 1 + f64.sub global.set $unary/F - block (result f64) - global.get $unary/F - local.tee $3 - f64.const 1 - f64.sub - global.set $unary/F - local.get $3 - end + global.get $unary/F + global.set $unary/F + global.get $unary/F + local.tee $3 + f64.const 1 + f64.add + global.set $unary/F + local.get $3 + global.set $unary/F + global.get $unary/F + local.tee $3 + f64.const 1 + f64.sub + global.set $unary/F + local.get $3 global.set $unary/F ) (func $start (; 1 ;) (type $FUNCSIG$v) diff --git a/tests/compiler/wasi.untouched.wat b/tests/compiler/wasi.untouched.wat index 1375bdce..4bf55efb 100644 --- a/tests/compiler/wasi.untouched.wat +++ b/tests/compiler/wasi.untouched.wat @@ -326,31 +326,29 @@ call $~lib/builtins/abort unreachable end - block - i32.const 4 - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 35 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 8 - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 36 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 35 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 36 + i32.const 2 + call $~lib/builtins/abort + unreachable end i32.const 0 i32.const 0 @@ -508,31 +506,29 @@ call $~lib/builtins/abort unreachable end - block - i32.const 4 - i32.const 4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 60 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - i32.const 8 - i32.const 8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 24 - i32.const 61 - i32.const 2 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 60 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 8 + i32.const 8 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 61 + i32.const 2 + call $~lib/builtins/abort + unreachable end i32.const 9 global.set $wasi/sig diff --git a/tests/compiler/while.untouched.wat b/tests/compiler/while.untouched.wat index 76ed70e9..5381fb87 100644 --- a/tests/compiler/while.untouched.wat +++ b/tests/compiler/while.untouched.wat @@ -27,7 +27,6 @@ i32.add global.set $while/m br $continue|0 - unreachable end unreachable end @@ -86,7 +85,6 @@ i32.add global.set $while/o br $continue|2 - unreachable end unreachable end @@ -115,7 +113,6 @@ unreachable end br $continue|1 - unreachable end unreachable end @@ -161,14 +158,12 @@ global.set $while/m block $break|3 loop $continue|3 - block (result i32) - global.get $while/n - local.tee $0 - i32.const 1 - i32.sub - global.set $while/n - local.get $0 - end + global.get $while/n + local.tee $0 + i32.const 1 + i32.sub + global.set $while/n + local.get $0 if (result i32) global.get $while/m i32.const 1 @@ -182,7 +177,6 @@ br_if $break|3 nop br $continue|3 - unreachable end unreachable end