harden / elaborate on makeCallInline

This commit is contained in:
dcode 2019-03-20 14:16:18 +01:00
parent 5fb3077064
commit 9b664dc175
58 changed files with 2532 additions and 2336 deletions

View File

@ -4293,7 +4293,7 @@ export function compileBuiltinArraySetWithValue(
let linkPrototype = assert(program.linkPrototype);
let linkInstance = compiler.resolver.resolveFunction(linkPrototype, [ type, target.type ]);
if (!linkInstance) return module.createUnreachable();
valueExpr = compiler.makeCallInline(linkInstance, [
valueExpr = compiler.makeCallInlinePrechecked(linkInstance, [
valueExpr,
module.createGetLocal(assert(tempThis).index, nativeSizeType)
], 0, true);

View File

@ -4879,7 +4879,7 @@ export class Compiler extends DiagnosticEmitter {
// this = (tempThis = this)
thisExpr = module.createTeeLocal(tempThis.index, thisExpr);
// value = LINK(value, tempThis)
valueWithCorrectType = this.makeCallInline(linkInstance, [
valueWithCorrectType = this.makeCallInlinePrechecked(linkInstance, [
valueWithCorrectType,
module.createGetLocal(tempThis.index, this.options.nativeSizeType)
], 0, true);
@ -5571,7 +5571,12 @@ export class Compiler extends DiagnosticEmitter {
var numArguments = argumentExpressions.length;
var signature = instance.signature;
var parameterTypes = signature.parameterTypes;
assert(numArguments <= parameterTypes.length);
var args = new Array<ExpressionRef>(numArguments);
var flow = this.currentFlow;
// compile arguments possibly using their own temp locals
var temps = flow.blockLocalsBeforeInlining(instance);
for (let i = 0; i < numArguments; ++i) {
args[i] = this.compileExpression(
argumentExpressions[i],
@ -5580,15 +5585,25 @@ export class Compiler extends DiagnosticEmitter {
WrapMode.NONE
);
}
return this.makeCallInline(instance, args, thisArg, canAlias);
flow.unblockLocals(temps);
return this.makeCallInlinePrechecked(instance, args, thisArg, canAlias);
}
makeCallInline(
makeCallInlinePrechecked(
instance: Function,
args: ExpressionRef[],
thisArg: ExpressionRef = 0,
canAlias: bool = false
): ExpressionRef {
// CAUTION: Imagine a call like `theCall(a, b)`. Unless canAlias, inlining needs a temporary local for
// each argument, looking something like `BLOCK { t1 = a, t2 = b, inlinedTheCall }`. Now, if argument b,
// which is compiled beforehand, itself required a temporary local, it is likely that it did pick `t1`
// for this, making it something like `BLOCK { t1 = a, t2 = (t1 = c, t1), inlinedTheCall }`, which is
// overwriting t1. Hence, whenever makeCallInline is used, this condition must be taken into account.
// Flows provide the helpers Flow#blockLocalsBeforeInlining and Flow#unblockLocals for this.
var module = this.module;
// Create a new inline flow and use it to compile the function as a block
@ -6733,7 +6748,7 @@ export class Compiler extends DiagnosticEmitter {
this.currentType = arrayType;
return module.createUnreachable();
}
let body = this.makeCallInline(wrapArrayInstance, [
let body = this.makeCallInlinePrechecked(wrapArrayInstance, [
program.options.isWasm64
? this.module.createI64(i64_low(bufferAddress), i64_high(bufferAddress))
: this.module.createI32(i64_low(bufferAddress))
@ -6793,7 +6808,7 @@ export class Compiler extends DiagnosticEmitter {
valueExpr = module.createUnreachable();
} else {
// value = LINK(value, tempThis)
valueExpr = this.makeCallInline(linkInstance, [
valueExpr = this.makeCallInlinePrechecked(linkInstance, [
valueExpr,
module.createGetLocal(tempThis.index, nativeArrayType)
], 0, true);
@ -8029,7 +8044,7 @@ export class Compiler extends DiagnosticEmitter {
if (classInstance.hasDecorator(DecoratorFlags.UNMANAGED)) {
// ALLOCATE_UNMANAGED(sizeof<T>())
let allocateInstance = assert(program.allocateUnmanagedInstance);
body = this.makeCallInline(allocateInstance, [
body = this.makeCallInlinePrechecked(allocateInstance, [
options.isWasm64
? module.createI64(classInstance.currentMemoryOffset)
: module.createI32(classInstance.currentMemoryOffset)
@ -8047,8 +8062,8 @@ export class Compiler extends DiagnosticEmitter {
this.currentType = classType;
return module.createUnreachable();
}
body = this.makeCallInline(registerInstance, [
this.makeCallInline(allocateInstance, [
body = this.makeCallInlinePrechecked(registerInstance, [
this.makeCallInlinePrechecked(allocateInstance, [
options.isWasm64
? module.createI64(classInstance.currentMemoryOffset)
: module.createI32(classInstance.currentMemoryOffset)

View File

@ -400,6 +400,27 @@ export class Flow {
return scopedAlias;
}
/** Blocks any locals that might be used in an inlining operation. */
blockLocalsBeforeInlining(instance: Function): Local[] {
var signature = instance.signature;
var parameterTypes = signature.parameterTypes;
var numParameters = parameterTypes.length;
var temps = new Array<Local>(numParameters);
for (let i = 0; i < numParameters; ++i) {
temps[i] = this.getTempLocal(parameterTypes[i], false);
}
var thisType = signature.thisType;
if (thisType) temps.push(this.getTempLocal(thisType, false));
return temps;
}
/** Unblocks the specified locals. */
unblockLocals(temps: Local[]): void {
for (let i = 0, k = temps.length; i < k; ++i) {
this.freeTempLocal(temps[i]);
}
}
/** Frees this flow's scoped variables and returns its parent flow. */
freeScopedLocals(): void {
if (this.scopedLocals) {

View File

@ -106,7 +106,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -120,7 +120,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -141,7 +141,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -156,7 +156,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -116,7 +116,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -130,7 +130,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -151,7 +151,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -166,7 +166,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -131,7 +131,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -145,7 +145,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -193,7 +193,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -208,7 +208,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -85,7 +85,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -99,7 +99,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -143,7 +143,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -158,7 +158,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -0,0 +1,55 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00.\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00-\00b\00l\00o\00c\00k\00l\00o\00c\00a\00l\00s\00.\00t\00s")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $inlining-blocklocals/b (mut i32) (i32.const 2))
(global $inlining-blocklocals/theCall_a (mut i32) (i32.const 0))
(global $inlining-blocklocals/theCall_b (mut i32) (i32.const 0))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $inlining-blocklocals/test (; 1 ;) (type $FUNCSIG$v)
(local $0 i32)
global.get $inlining-blocklocals/b
local.tee $0
i32.const 1
i32.add
global.set $inlining-blocklocals/b
i32.const 1
global.set $inlining-blocklocals/theCall_a
local.get $0
global.set $inlining-blocklocals/theCall_b
global.get $inlining-blocklocals/theCall_a
i32.const 1
i32.ne
if
i32.const 0
i32.const 16
i32.const 16
i32.const 2
call $~lib/env/abort
unreachable
end
global.get $inlining-blocklocals/theCall_b
i32.const 2
i32.ne
if
i32.const 0
i32.const 16
i32.const 17
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $start (; 2 ;) (type $FUNCSIG$v)
call $inlining-blocklocals/test
)
(func $null (; 3 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -0,0 +1,19 @@
var b: i32 = 2;
var theCall_a: i32;
var theCall_b: i32;
@inline function theCall(a: i32, b: i32): void {
theCall_a = a;
theCall_b = b;
}
function test(): void {
var a = 1;
// no blocking: t1 = a; t2 = (t1 = b) + 1, t1; theCall ✖
// blocking: t1 = a; t2 = (t3 = b) + 1, t3; theCall ✔
theCall(a, b++);
assert(theCall_a == 1);
assert(theCall_b == 2);
}
test();

View File

@ -0,0 +1,73 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00.\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00-\00b\00l\00o\00c\00k\00l\00o\00c\00a\00l\00s\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $inlining-blocklocals/b (mut i32) (i32.const 2))
(global $inlining-blocklocals/theCall_a (mut i32) (i32.const 0))
(global $inlining-blocklocals/theCall_b (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 64))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $inlining-blocklocals/test (; 1 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 1
local.set $0
block $inlining-blocklocals/theCall|inlined.0
local.get $0
local.set $2
block (result i32)
global.get $inlining-blocklocals/b
local.tee $3
i32.const 1
i32.add
global.set $inlining-blocklocals/b
local.get $3
end
local.set $1
local.get $2
global.set $inlining-blocklocals/theCall_a
local.get $1
global.set $inlining-blocklocals/theCall_b
end
global.get $inlining-blocklocals/theCall_a
i32.const 1
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 16
i32.const 2
call $~lib/env/abort
unreachable
end
global.get $inlining-blocklocals/theCall_b
i32.const 2
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 17
i32.const 2
call $~lib/env/abort
unreachable
end
)
(func $start:inlining-blocklocals (; 2 ;) (type $FUNCSIG$v)
call $inlining-blocklocals/test
)
(func $start (; 3 ;) (type $FUNCSIG$v)
call $start:inlining-blocklocals
)
(func $null (; 4 ;) (type $FUNCSIG$v)
)
)

View File

@ -131,7 +131,7 @@
if
i32.const 0
i32.const 48
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -145,7 +145,7 @@
if
i32.const 0
i32.const 48
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -245,11 +245,11 @@
end
block $inlining/Foo.method_static|inlined.0 (result i32)
i32.const 42
local.set $2
i32.const 2
local.set $3
local.get $2
i32.const 2
local.set $2
local.get $3
local.get $2
i32.add
end
i32.const 44
@ -267,12 +267,12 @@
local.set $7
block $inlining/Foo#method_this|inlined.0 (result i32)
local.get $7
local.set $3
i32.const 43
local.set $2
i32.const 3
local.set $4
local.get $3
i32.const 43
local.set $3
i32.const 3
local.set $2
local.get $4
end
i32.const 123
i32.eq
@ -407,7 +407,7 @@
if
i32.const 0
i32.const 48
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -422,7 +422,7 @@
if
i32.const 0
i32.const 48
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -447,13 +447,13 @@
(local $5 i32)
block $inlining/Bar#constructor|inlined.0 (result i32)
i32.const 0
local.set $0
i32.const 4
local.set $1
i32.const 4
local.set $0
block $inlining/Baz#constructor|inlined.0 (result i32)
local.get $0
local.get $1
if (result i32)
local.get $0
local.get $1
else
block $~lib/runtime/ALLOCATE|inlined.0 (result i32)
i32.const 16
@ -466,11 +466,11 @@
i32.const 2
call $~lib/runtime/doRegister
end
local.set $2
i32.const 2
local.set $3
i32.const 2
local.set $2
block (result i32)
local.get $2
local.get $3
i32.eqz
if
block $~lib/runtime/REGISTER<Baz>|inlined.0 (result i32)
@ -485,31 +485,31 @@
i32.const 3
call $~lib/runtime/doRegister
end
local.set $2
local.set $3
end
local.get $2
local.get $3
i32.const 1
i32.store
local.get $2
local.get $3
i32.const 0
i32.store offset=4
local.get $2
local.get $3
end
local.get $3
i32.store offset=4
local.get $2
i32.store offset=4
local.get $3
end
local.set $0
local.get $0
local.set $1
local.get $1
i32.const 3
i32.store offset=8
local.get $0
local.get $1
i32.const 0
i32.store offset=12
local.get $0
local.get $1
i32.store offset=12
local.get $0
i32.store offset=12
local.get $1
end
local.set $5
local.get $5

View File

@ -57,7 +57,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -72,7 +72,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -302,7 +302,7 @@
if
i32.const 0
i32.const 464
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -316,7 +316,7 @@
if
i32.const 0
i32.const 464
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -457,32 +457,32 @@
(local $7 i32)
(local $8 i32)
(local $9 i64)
(local $10 i32)
(local $10 i64)
(local $11 i64)
(local $12 i32)
(local $13 i64)
(local $13 i32)
(local $14 i64)
local.get $3
local.get $1
i64.sub
local.set $11
local.set $9
i64.const 1
i32.const 0
local.get $4
i32.sub
local.tee $10
local.tee $12
i64.extend_i32_s
local.tee $13
local.tee $1
i64.shl
local.tee $9
local.tee $10
i64.const 1
i64.sub
local.tee $14
local.get $3
i64.and
local.set $1
local.set $11
local.get $3
local.get $13
local.get $1
i64.shr_u
i32.wrap_i64
local.tee $6
@ -490,14 +490,14 @@
local.set $8
i32.const 1628
i32.load
local.set $12
local.set $13
loop $continue|0
local.get $8
i32.const 0
i32.gt_s
if
local.get $8
local.set $2
local.set $4
block $break|1
block $case10|1
block $case9|1
@ -513,7 +513,7 @@
i32.const 10
i32.ne
if
local.get $2
local.get $4
i32.const 1
i32.sub
br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case10|1
@ -521,7 +521,7 @@
local.get $6
i32.const 1000000000
i32.div_u
local.set $4
local.set $2
local.get $6
i32.const 1000000000
i32.rem_u
@ -531,7 +531,7 @@
local.get $6
i32.const 100000000
i32.div_u
local.set $4
local.set $2
local.get $6
i32.const 100000000
i32.rem_u
@ -541,7 +541,7 @@
local.get $6
i32.const 10000000
i32.div_u
local.set $4
local.set $2
local.get $6
i32.const 10000000
i32.rem_u
@ -551,7 +551,7 @@
local.get $6
i32.const 1000000
i32.div_u
local.set $4
local.set $2
local.get $6
i32.const 1000000
i32.rem_u
@ -561,7 +561,7 @@
local.get $6
i32.const 100000
i32.div_u
local.set $4
local.set $2
local.get $6
i32.const 100000
i32.rem_u
@ -571,7 +571,7 @@
local.get $6
i32.const 10000
i32.div_u
local.set $4
local.set $2
local.get $6
i32.const 10000
i32.rem_u
@ -581,7 +581,7 @@
local.get $6
i32.const 1000
i32.div_u
local.set $4
local.set $2
local.get $6
i32.const 1000
i32.rem_u
@ -591,7 +591,7 @@
local.get $6
i32.const 100
i32.div_u
local.set $4
local.set $2
local.get $6
i32.const 100
i32.rem_u
@ -601,7 +601,7 @@
local.get $6
i32.const 10
i32.div_u
local.set $4
local.set $2
local.get $6
i32.const 10
i32.rem_u
@ -609,29 +609,29 @@
br $break|1
end
local.get $6
local.set $4
local.set $2
i32.const 0
local.set $6
br $break|1
end
i32.const 0
local.set $4
local.set $2
end
local.get $4
local.get $2
local.get $7
i32.or
if
local.get $7
local.tee $2
local.tee $4
i32.const 1
i32.add
local.set $7
local.get $2
local.get $4
i32.const 1
i32.shl
local.get $0
i32.add
local.get $4
local.get $2
i32.const 65535
i32.and
i32.const 48
@ -644,12 +644,12 @@
local.set $8
local.get $6
i64.extend_i32_u
local.get $10
local.get $12
i64.extend_i32_s
i64.shl
local.get $1
local.get $11
i64.add
local.tee $3
local.tee $1
local.get $5
i64.le_u
if
@ -657,43 +657,38 @@
local.get $8
i32.add
global.set $~lib/util/number/_K
local.get $5
local.set $9
local.get $3
local.set $1
local.get $8
i32.const 2
i32.shl
local.get $12
local.get $13
i32.add
i64.load32_u
local.get $10
local.get $12
i64.extend_i32_s
i64.shl
local.set $3
local.get $11
local.set $5
local.set $10
local.get $7
local.tee $4
i32.const 1
i32.sub
i32.const 1
i32.shl
local.get $0
i32.add
local.tee $4
local.tee $7
i32.load16_u
local.set $6
loop $continue|2
block (result i32)
local.get $1
local.get $5
local.get $9
i64.lt_u
local.tee $0
if
local.get $9
local.get $5
local.get $1
i64.sub
local.get $3
local.get $10
i64.ge_u
local.set $0
end
@ -701,21 +696,21 @@
end
if (result i32)
local.get $1
local.get $3
local.get $10
i64.add
local.get $5
local.get $9
i64.lt_u
local.tee $0
if (result i32)
local.get $0
else
local.get $5
local.get $9
local.get $1
i64.sub
local.get $1
local.get $3
local.get $10
i64.add
local.get $5
local.get $9
i64.sub
i64.gt_u
end
@ -728,16 +723,16 @@
i32.sub
local.set $6
local.get $1
local.get $3
local.get $10
i64.add
local.set $1
br $continue|2
end
end
local.get $4
local.get $7
local.get $6
i32.store16
local.get $7
local.get $4
return
end
br $continue|0
@ -748,14 +743,14 @@
i64.const 10
i64.mul
local.set $5
local.get $1
local.get $11
i64.const 10
i64.mul
local.tee $1
local.get $10
local.tee $11
local.get $12
i64.extend_i32_s
i64.shr_u
local.tee $3
local.tee $1
local.get $7
i64.extend_i32_s
i64.or
@ -763,16 +758,16 @@
i64.ne
if
local.get $7
local.tee $4
local.tee $2
i32.const 1
i32.add
local.set $7
local.get $4
local.get $2
i32.const 1
i32.shl
local.get $0
i32.add
local.get $3
local.get $1
i32.wrap_i64
i32.const 65535
i32.and
@ -784,10 +779,10 @@
i32.const 1
i32.sub
local.set $8
local.get $1
local.get $11
local.get $14
i64.and
local.tee $1
local.tee $11
local.get $5
i64.ge_u
br_if $continue|3
@ -796,87 +791,85 @@
local.get $8
i32.add
global.set $~lib/util/number/_K
local.get $1
local.set $3
local.get $9
local.get $11
local.set $1
i32.const 0
local.get $8
i32.sub
i32.const 2
i32.shl
local.get $12
local.get $13
i32.add
i64.load32_u
local.get $11
local.get $9
i64.mul
local.set $9
local.get $7
local.tee $6
local.tee $2
i32.const 1
i32.sub
i32.const 1
i32.shl
local.get $0
i32.add
local.tee $4
local.tee $7
i32.load16_u
local.set $7
local.set $4
loop $continue|4
block (result i32)
local.get $3
local.get $1
local.get $9
i64.lt_u
local.tee $2
local.tee $0
if
local.get $5
local.get $3
i64.sub
local.get $1
i64.sub
local.get $10
i64.ge_u
local.set $2
local.set $0
end
local.get $2
local.get $0
end
if (result i32)
local.get $1
local.get $3
local.get $10
i64.add
local.get $9
i64.lt_u
local.tee $2
local.tee $0
if (result i32)
local.get $2
local.get $0
else
local.get $9
local.get $3
local.get $1
i64.sub
local.get $1
local.get $3
local.get $10
i64.add
local.get $9
i64.sub
i64.gt_u
end
else
local.get $2
local.get $0
end
if
local.get $7
local.get $4
i32.const 1
i32.sub
local.set $7
local.set $4
local.get $1
local.get $3
local.get $10
i64.add
local.set $3
local.set $1
br $continue|4
end
end
local.get $4
local.get $7
local.get $4
i32.store16
local.get $6
local.get $2
)
(func $~lib/util/memory/memcpy (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
@ -1972,6 +1965,7 @@
(func $~lib/util/number/prettify (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
local.get $2
i32.eqz
if
@ -1991,78 +1985,78 @@
local.get $1
local.get $2
i32.add
local.tee $3
i32.le_s
local.tee $4
i32.le_s
local.tee $3
if
local.get $3
local.get $4
i32.const 21
i32.le_s
local.set $4
local.set $3
end
local.get $4
local.get $3
if (result i32)
local.get $1
local.set $4
local.set $3
loop $repeat|0
block $break|0
local.get $4
local.get $3
local.get $4
i32.ge_s
br_if $break|0
local.get $4
local.get $3
i32.const 1
i32.shl
local.get $0
i32.add
i32.const 48
i32.store16
local.get $4
local.get $3
i32.const 1
i32.add
local.set $4
local.set $3
br $repeat|0
end
end
local.get $3
local.get $4
i32.const 1
i32.shl
local.get $0
i32.add
i32.const 3145774
i32.store
local.get $3
local.get $4
i32.const 2
i32.add
else
local.get $3
local.get $4
i32.const 0
i32.gt_s
local.tee $4
local.tee $3
if
local.get $3
local.get $4
i32.const 21
i32.le_s
local.set $4
local.set $3
end
local.get $4
local.get $3
if (result i32)
local.get $3
local.get $4
i32.const 1
i32.shl
local.get $0
i32.add
local.tee $4
local.tee $3
i32.const 2
i32.add
local.get $4
local.get $3
i32.const 0
local.get $2
i32.sub
i32.const 1
i32.shl
call $~lib/memory/memory.copy
local.get $4
local.get $3
i32.const 46
i32.store16
local.get $1
@ -2070,21 +2064,21 @@
i32.add
else
i32.const -6
local.get $3
local.get $4
i32.lt_s
local.tee $4
local.tee $3
if
local.get $3
local.get $4
i32.const 0
i32.le_s
local.set $4
local.set $3
end
local.get $4
local.get $3
if (result i32)
i32.const 2
local.get $3
local.get $4
i32.sub
local.tee $4
local.tee $3
i32.const 1
i32.shl
local.get $0
@ -2098,29 +2092,29 @@
i32.const 3014704
i32.store
i32.const 2
local.set $3
local.set $5
loop $repeat|1
block $break|1
local.get $5
local.get $3
local.get $4
i32.ge_s
br_if $break|1
local.get $3
local.get $5
i32.const 1
i32.shl
local.get $0
i32.add
i32.const 48
i32.store16
local.get $3
local.get $5
i32.const 1
i32.add
local.set $3
local.set $5
br $repeat|1
end
end
local.get $1
local.get $4
local.get $3
i32.add
else
local.get $1
@ -2133,9 +2127,9 @@
local.get $0
i32.const 4
i32.add
local.tee $4
local.tee $5
block (result i32)
local.get $3
local.get $4
i32.const 1
i32.sub
local.tee $3
@ -2156,7 +2150,7 @@
i32.add
local.tee $2
call $~lib/util/number/utoa32_lut
local.get $4
local.get $5
i32.const 45
i32.const 43
local.get $0
@ -2191,37 +2185,37 @@
local.get $0
i32.const 4
i32.add
local.tee $0
local.tee $3
block (result i32)
local.get $3
local.get $4
i32.const 1
i32.sub
local.tee $3
local.tee $0
i32.const 0
i32.lt_s
local.tee $4
local.tee $5
if
i32.const 0
local.get $3
local.get $0
i32.sub
local.set $3
local.set $0
end
local.get $3
local.get $0
end
local.get $3
local.get $0
call $~lib/util/number/decimalCount32
i32.const 1
i32.add
local.tee $2
local.tee $0
call $~lib/util/number/utoa32_lut
local.get $0
local.get $3
i32.const 45
i32.const 43
local.get $4
local.get $5
select
i32.store16
local.get $0
local.get $1
local.get $2
i32.add
i32.const 2
i32.add
@ -2233,8 +2227,8 @@
(func $~lib/util/number/dtoa_core (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i64)
(local $2 i64)
(local $3 i64)
(local $4 i32)
(local $3 i32)
(local $4 i64)
(local $5 i64)
(local $6 i64)
(local $7 i64)
@ -2260,8 +2254,8 @@
f64.add
local.tee $9
i32.trunc_f64_s
local.tee $4
local.get $4
local.tee $3
local.get $3
f64.convert_i32_s
local.get $9
f64.ne
@ -2270,7 +2264,7 @@
i32.shr_s
i32.const 1
i32.add
local.tee $4
local.tee $3
i32.const 3
i32.shl
local.tee $10
@ -2284,14 +2278,14 @@
global.set $~lib/util/number/_frc_pow
i32.const 1556
i32.load
local.get $4
local.get $3
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 $5
local.tee $6
i64.const 4294967295
i64.and
local.tee $2
@ -2299,7 +2293,7 @@
i64.mul
i64.const 0
i64.add
local.tee $3
local.tee $4
i64.const 4294967295
i64.and
i64.const 0
@ -2308,34 +2302,34 @@
i64.add
i64.const 32
i64.shr_u
local.get $5
local.get $6
i64.const 32
i64.shr_u
local.tee $6
local.tee $7
i64.const 2147483648
i64.mul
local.get $3
local.get $4
i64.const 32
i64.shr_u
i64.add
i64.add
local.set $11
local.get $7
global.get $~lib/util/number/_frc_plus
local.tee $3
local.tee $4
i64.const 4294967295
i64.and
local.tee $7
local.get $6
local.tee $5
i64.mul
local.get $2
local.tee $1
local.get $3
local.get $4
i64.const 32
i64.shr_u
local.tee $2
i64.mul
local.get $1
local.get $7
local.get $5
i64.mul
i64.const 32
i64.shr_u
@ -2349,16 +2343,16 @@
i64.const 32
i64.shr_u
local.get $2
local.get $6
local.get $7
i64.mul
local.get $1
i64.const 32
i64.shr_u
i64.add
i64.add
local.set $1
local.get $5
local.tee $3
local.set $5
local.get $6
local.tee $1
i64.const 4294967295
i64.and
local.set $2
@ -2366,27 +2360,27 @@
local.get $0
local.get $11
global.get $~lib/util/number/_exp_pow
local.tee $4
local.tee $3
i32.const 2
i32.add
local.get $1
local.get $5
i64.const 1
i64.sub
local.tee $5
local.get $4
local.tee $6
local.get $3
local.get $8
i32.add
i32.const -64
i32.sub
local.get $5
local.get $6
local.get $1
i64.const 32
i64.shr_u
local.tee $5
global.get $~lib/util/number/_frc_minus
local.tee $1
i64.const 4294967295
i64.and
local.tee $6
local.get $3
i64.const 32
i64.shr_u
local.tee $7
i64.mul
local.get $2
@ -2396,12 +2390,12 @@
local.tee $1
i64.mul
local.get $2
local.get $6
local.get $7
i64.mul
i64.const 32
i64.shr_u
i64.add
local.tee $3
local.tee $4
i64.const 4294967295
i64.and
i64.add
@ -2410,9 +2404,9 @@
i64.const 32
i64.shr_u
local.get $1
local.get $7
local.get $5
i64.mul
local.get $3
local.get $4
i64.const 32
i64.shr_u
i64.add

View File

@ -399,7 +399,7 @@
if
i32.const 0
i32.const 464
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -414,7 +414,7 @@
if
i32.const 0
i32.const 464
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -470,14 +470,14 @@
local.set $4
block $~lib/util/number/utoa32_core|inlined.0
local.get $4
local.set $3
local.set $6
local.get $0
local.set $5
local.get $2
local.set $6
local.get $3
local.get $5
local.set $3
local.get $6
local.get $5
local.get $3
call $~lib/util/number/utoa32_lut
end
local.get $1
@ -488,8 +488,8 @@
end
block $~lib/runtime/REGISTER<String>|inlined.0 (result i32)
local.get $4
local.set $6
local.get $6
local.set $3
local.get $3
i32.const 1
call $~lib/runtime/doRegister
end
@ -931,13 +931,13 @@
global.set $~lib/util/number/_K
block $~lib/util/number/grisuRound|inlined.0
local.get $0
local.set $18
local.get $15
local.set $20
local.get $15
local.set $18
local.get $5
local.set $21
local.set $24
local.get $19
local.set $22
local.set $23
local.get $16
local.get $14
i32.const 2
@ -947,11 +947,11 @@
local.get $7
i64.extend_i32_s
i64.shl
local.set $23
local.set $22
local.get $10
local.set $24
local.get $18
local.set $21
local.get $20
local.get $18
i32.const 1
i32.sub
i32.const 1
@ -963,37 +963,37 @@
local.set $26
block $break|2
loop $continue|2
local.get $22
local.get $24
local.get $23
local.get $21
i64.lt_u
local.tee $27
if (result i32)
local.get $21
local.get $22
i64.sub
local.get $24
local.get $23
i64.sub
local.get $22
i64.ge_u
else
local.get $27
end
local.tee $27
if (result i32)
local.get $22
local.get $23
local.get $22
i64.add
local.get $24
local.get $21
i64.lt_u
local.tee $27
if (result i32)
local.get $27
else
local.get $24
local.get $22
i64.sub
local.get $22
local.get $21
local.get $23
i64.sub
local.get $23
local.get $22
i64.add
local.get $24
local.get $21
i64.sub
i64.gt_u
end
@ -1006,10 +1006,10 @@
i32.const 1
i32.sub
local.set $26
local.get $22
local.get $23
local.get $22
i64.add
local.set $22
local.set $23
end
br $continue|2
end
@ -1101,9 +1101,9 @@
local.set $10
block $~lib/util/number/grisuRound|inlined.1
local.get $0
local.set $17
local.get $15
local.set $26
local.get $15
local.set $17
local.get $5
local.set $24
local.get $13
@ -1112,8 +1112,8 @@
local.set $22
local.get $10
local.set $21
local.get $17
local.get $26
local.get $17
i32.const 1
i32.sub
i32.const 1
@ -1122,13 +1122,13 @@
local.set $25
local.get $25
i32.load16_u
local.set $20
local.set $18
block $break|4
loop $continue|4
local.get $23
local.get $21
i64.lt_u
local.tee $18
local.tee $20
if (result i32)
local.get $24
local.get $23
@ -1136,18 +1136,18 @@
local.get $22
i64.ge_u
else
local.get $18
local.get $20
end
local.tee $18
local.tee $20
if (result i32)
local.get $23
local.get $22
i64.add
local.get $21
i64.lt_u
local.tee $18
local.tee $20
if (result i32)
local.get $18
local.get $20
else
local.get $21
local.get $23
@ -1160,14 +1160,14 @@
i64.gt_u
end
else
local.get $18
local.get $20
end
if
block
local.get $20
local.get $18
i32.const 1
i32.sub
local.set $20
local.set $18
local.get $23
local.get $22
i64.add
@ -1178,7 +1178,7 @@
end
end
local.get $25
local.get $20
local.get $18
i32.store16
end
local.get $15
@ -2394,6 +2394,8 @@
)
(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)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
@ -2406,9 +2408,9 @@
i32.add
local.get $0
i32.le_u
local.tee $3
local.tee $5
if (result i32)
local.get $3
local.get $5
else
local.get $0
local.get $2
@ -2453,19 +2455,19 @@
local.set $2
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -2510,19 +2512,19 @@
block
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -2821,40 +2823,40 @@
local.get $0
i32.const 4
i32.add
local.set $4
local.set $5
local.get $3
i32.const 1
i32.sub
local.set $5
local.get $5
local.set $4
local.get $4
i32.const 0
i32.lt_s
local.set $6
local.get $6
if
i32.const 0
local.get $5
local.get $4
i32.sub
local.set $5
local.set $4
end
local.get $5
local.get $4
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 $8
local.get $5
local.set $10
local.get $4
local.set $9
local.get $7
local.set $10
local.get $8
local.get $9
local.set $8
local.get $10
local.get $9
local.get $8
call $~lib/util/number/utoa32_lut
end
local.get $4
local.get $5
i32.const 45
i32.const 43
local.get $6
@ -2897,46 +2899,46 @@
i32.add
i32.const 4
i32.add
local.set $6
local.set $4
local.get $3
i32.const 1
i32.sub
local.set $5
local.get $5
local.set $6
local.get $6
i32.const 0
i32.lt_s
local.set $4
local.get $4
local.set $5
local.get $5
if
i32.const 0
local.get $5
local.get $6
i32.sub
local.set $5
local.set $6
end
local.get $5
local.get $6
call $~lib/util/number/decimalCount32
i32.const 1
i32.add
local.set $10
local.set $8
block $~lib/util/number/utoa32_core|inlined.2
local.get $6
local.set $9
local.get $5
local.set $8
local.get $10
local.get $4
local.set $11
local.get $9
local.get $6
local.set $10
local.get $8
local.set $9
local.get $11
local.get $10
local.get $9
call $~lib/util/number/utoa32_lut
end
local.get $6
local.get $4
i32.const 45
i32.const 43
local.get $4
local.get $5
select
i32.store16
local.get $10
local.get $8
end
i32.add
local.set $1
@ -2999,9 +3001,9 @@
local.get $1
local.set $3
local.get $0
local.set $4
local.get $2
local.set $5
local.get $2
local.set $4
local.get $3
i64.reinterpret_f64
local.set $6
@ -3159,22 +3161,22 @@
local.set $14
block $~lib/util/number/umul64f|inlined.0 (result i64)
local.get $9
local.set $10
local.get $12
local.set $17
local.get $10
local.get $12
local.set $10
local.get $17
i64.const 4294967295
i64.and
local.set $18
local.get $17
local.get $10
i64.const 4294967295
i64.and
local.set $19
local.get $10
local.get $17
i64.const 32
i64.shr_u
local.set $20
local.get $17
local.get $10
i64.const 32
i64.shr_u
local.set $21
@ -3221,53 +3223,53 @@
local.set $24
block $~lib/util/number/umul64e|inlined.0 (result i32)
local.get $7
local.set $15
local.get $14
local.set $11
local.get $15
local.get $14
local.set $15
local.get $11
local.get $15
i32.add
i32.const 64
i32.add
end
local.set $11
local.set $15
block $~lib/util/number/umul64f|inlined.1 (result i64)
global.get $~lib/util/number/_frc_plus
local.set $23
local.get $12
local.set $22
local.get $23
local.get $12
local.set $23
local.get $22
i64.const 4294967295
i64.and
local.set $21
local.get $22
local.get $23
i64.const 4294967295
i64.and
local.set $20
local.get $23
local.get $22
i64.const 32
i64.shr_u
local.set $19
local.get $22
local.get $23
i64.const 32
i64.shr_u
local.set $18
local.get $21
local.get $20
i64.mul
local.set $17
local.set $10
local.get $19
local.get $20
i64.mul
local.get $17
local.get $10
i64.const 32
i64.shr_u
i64.add
local.set $10
local.set $17
local.get $21
local.get $18
i64.mul
local.get $10
local.get $17
i64.const 4294967295
i64.and
i64.add
@ -3276,10 +3278,10 @@
i64.const 2147483647
i64.add
local.set $25
local.get $10
local.get $17
i64.const 32
i64.shr_u
local.set $10
local.set $17
local.get $25
i64.const 32
i64.shr_u
@ -3287,7 +3289,7 @@
local.get $19
local.get $18
i64.mul
local.get $10
local.get $17
i64.add
local.get $25
i64.add
@ -3297,16 +3299,16 @@
local.set $25
block $~lib/util/number/umul64e|inlined.1 (result i32)
global.get $~lib/util/number/_exp
local.set $15
local.get $14
local.set $26
local.get $15
local.get $14
local.set $11
local.get $26
local.get $11
i32.add
i32.const 64
i32.add
end
local.set $26
local.set $11
block $~lib/util/number/umul64f|inlined.2 (result i64)
global.get $~lib/util/number/_frc_minus
local.set $10
@ -3331,19 +3333,19 @@
local.get $18
local.get $19
i64.mul
local.set $22
local.set $23
local.get $20
local.get $19
i64.mul
local.get $22
local.get $23
i64.const 32
i64.shr_u
i64.add
local.set $23
local.set $22
local.get $18
local.get $21
i64.mul
local.get $23
local.get $22
i64.const 4294967295
i64.and
i64.add
@ -3352,10 +3354,10 @@
i64.const 2147483647
i64.add
local.set $27
local.get $23
local.get $22
i64.const 32
i64.shr_u
local.set $23
local.set $22
local.get $27
i64.const 32
i64.shr_u
@ -3363,7 +3365,7 @@
local.get $20
local.get $21
i64.mul
local.get $23
local.get $22
i64.add
local.get $27
i64.add
@ -3374,14 +3376,14 @@
local.get $25
local.get $27
i64.sub
local.set $23
local.get $4
local.get $24
local.get $11
local.get $25
local.get $26
local.get $23
local.set $22
local.get $5
local.get $24
local.get $15
local.get $25
local.get $11
local.get $22
local.get $4
call $~lib/util/number/genDigits
end
local.set $28

View File

@ -106,7 +106,7 @@
if
i32.const 0
i32.const 48
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -120,7 +120,7 @@
if
i32.const 0
i32.const 48
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -143,7 +143,7 @@
if
i32.const 0
i32.const 48
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -158,7 +158,7 @@
if
i32.const 0
i32.const 48
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -100,7 +100,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -114,7 +114,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -150,7 +150,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -165,7 +165,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -1398,9 +1398,9 @@
i32.const 42
local.set $0
i32.const 0
global.get $std/allocator_arena/ptr1
local.tee $1
global.get $std/allocator_arena/ptr2
local.tee $1
global.get $std/allocator_arena/ptr1
local.tee $2
i32.eq
br_if $~lib/util/memory/memcmp|inlined.0
@ -1411,10 +1411,10 @@
i32.ne
local.tee $3
if (result i32)
local.get $1
i32.load8_u
local.get $2
i32.load8_u
local.get $1
i32.load8_u
i32.eq
else
local.get $3
@ -1424,23 +1424,23 @@
i32.const 1
i32.sub
local.set $0
local.get $1
i32.const 1
i32.add
local.set $1
local.get $2
i32.const 1
i32.add
local.set $2
local.get $1
i32.const 1
i32.add
local.set $1
br $continue|2
end
end
local.get $0
if (result i32)
local.get $1
i32.load8_u
local.get $2
i32.load8_u
local.get $1
i32.load8_u
i32.sub
else
i32.const 0

View File

@ -107,7 +107,8 @@
(func $~lib/memory/memory.fill (; 2 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -183,13 +184,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -303,13 +304,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -319,7 +320,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -328,22 +329,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32
@ -1563,6 +1564,8 @@
)
(func $~lib/memory/memory.copy (; 4 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
@ -1575,9 +1578,9 @@
i32.add
local.get $0
i32.le_u
local.tee $3
local.tee $5
if (result i32)
local.get $3
local.get $5
else
local.get $0
local.get $2
@ -1622,19 +1625,19 @@
local.set $2
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -1679,19 +1682,19 @@
block
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -1911,19 +1914,19 @@
end
block $~lib/memory/memory.compare|inlined.0 (result i32)
global.get $std/allocator_arena/ptr1
local.set $0
local.set $2
global.get $std/allocator_arena/ptr2
local.set $1
global.get $std/allocator_arena/size
local.set $2
local.set $0
block $~lib/util/memory/memcmp|inlined.0 (result i32)
local.get $0
local.set $3
local.get $1
local.set $4
local.get $2
local.set $5
local.get $3
local.get $1
local.set $4
local.get $0
local.set $3
local.get $5
local.get $4
i32.eq
if
@ -1932,12 +1935,12 @@
end
block $break|2
loop $continue|2
local.get $5
local.get $3
i32.const 0
i32.ne
local.tee $6
if (result i32)
local.get $3
local.get $5
i32.load8_u
local.get $4
i32.load8_u
@ -1947,14 +1950,14 @@
end
if
block
local.get $5
i32.const 1
i32.sub
local.set $5
local.get $3
i32.const 1
i32.add
i32.sub
local.set $3
local.get $5
i32.const 1
i32.add
local.set $5
local.get $4
i32.const 1
i32.add
@ -1964,9 +1967,9 @@
end
end
end
local.get $5
local.get $3
if (result i32)
local.get $3
local.get $5
i32.load8_u
local.get $4
i32.load8_u

View File

@ -374,7 +374,7 @@
if
i32.const 0
i32.const 224
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -388,7 +388,7 @@
if
i32.const 0
i32.const 224
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -436,7 +436,7 @@
if
i32.const 0
i32.const 224
i32.const 233
i32.const 251
i32.const 57
call $~lib/env/abort
unreachable

View File

@ -209,7 +209,8 @@
(func $~lib/memory/memory.fill (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -285,13 +286,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -405,13 +406,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -421,7 +422,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -430,22 +431,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32
@ -470,7 +471,7 @@
if
i32.const 0
i32.const 224
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -485,7 +486,7 @@
if
i32.const 0
i32.const 224
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -545,7 +546,7 @@
if
i32.const 0
i32.const 224
i32.const 233
i32.const 251
i32.const 57
call $~lib/env/abort
unreachable

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -326,7 +326,7 @@
if
i32.const 0
i32.const 64
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -340,7 +340,7 @@
if
i32.const 0
i32.const 64
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -1552,7 +1552,7 @@
if
i32.const 0
i32.const 64
i32.const 233
i32.const 251
i32.const 57
call $~lib/env/abort
unreachable

View File

@ -147,7 +147,8 @@
(func $~lib/memory/memory.fill (; 4 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -223,13 +224,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -343,13 +344,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -359,7 +360,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -368,22 +369,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32
@ -408,7 +409,7 @@
if
i32.const 0
i32.const 64
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -423,7 +424,7 @@
if
i32.const 0
i32.const 64
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -1681,6 +1682,8 @@
)
(func $~lib/memory/memory.copy (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
@ -1693,9 +1696,9 @@
i32.add
local.get $0
i32.le_u
local.tee $3
local.tee $5
if (result i32)
local.get $3
local.get $5
else
local.get $0
local.get $2
@ -1740,19 +1743,19 @@
local.set $2
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -1797,19 +1800,19 @@
block
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -2048,7 +2051,7 @@
if
i32.const 0
i32.const 64
i32.const 233
i32.const 251
i32.const 57
call $~lib/env/abort
unreachable

View File

@ -163,7 +163,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -177,7 +177,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -153,7 +153,8 @@
(func $~lib/memory/memory.fill (; 4 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -229,13 +230,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -349,13 +350,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -365,7 +366,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -374,22 +375,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32
@ -414,7 +415,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -429,7 +430,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -489,7 +490,7 @@
if
i32.const 0
i32.const 16
i32.const 233
i32.const 251
i32.const 57
call $~lib/env/abort
unreachable

View File

@ -90,7 +90,7 @@
if
i32.const 0
i32.const 48
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -104,7 +104,7 @@
if
i32.const 0
i32.const 48
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -150,7 +150,7 @@
if
i32.const 0
i32.const 48
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -165,7 +165,7 @@
if
i32.const 0
i32.const 48
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -230,25 +230,25 @@
(local $6 i64)
block $~lib/date/Date.UTC|inlined.0 (result i64)
i32.const 1970
local.set $0
i32.const 0
local.set $1
i32.const 1
local.set $2
i32.const 0
local.set $3
local.set $5
i32.const 0
local.set $4
i32.const 1
local.set $3
i32.const 0
local.set $5
local.set $2
i32.const 0
local.set $1
i32.const 0
local.set $0
i64.const 0
local.set $6
local.get $0
local.get $1
local.get $2
local.get $3
local.get $4
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
@ -304,25 +304,25 @@
end
block $~lib/date/Date.UTC|inlined.2 (result i64)
i32.const 2018
local.set $0
i32.const 10
local.set $1
i32.const 10
local.set $2
i32.const 11
local.set $3
i32.const 0
local.set $4
i32.const 0
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 $0
local.get $1
local.get $2
local.get $3
local.get $4
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

View File

@ -3439,22 +3439,22 @@
(local $2 f64)
(local $3 f64)
local.get $0
local.set $2
local.get $1
local.set $3
local.get $2
local.get $1
local.set $2
local.get $3
local.get $2
f64.max
)
(func $std/libm/min (; 47 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)
(local $2 f64)
(local $3 f64)
local.get $0
local.set $2
local.get $1
local.set $3
local.get $2
local.get $1
local.set $2
local.get $3
local.get $2
f64.min
)
(func $~lib/math/NativeMath.pow (; 48 ;) (type $FUNCSIG$ddd) (param $0 f64) (param $1 f64) (result f64)

View File

@ -123,7 +123,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -137,7 +137,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -156,7 +156,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -171,7 +171,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -190,7 +190,8 @@
(func $~lib/memory/memory.fill (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -266,13 +267,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -386,13 +387,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -402,7 +403,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -411,22 +412,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32

View File

@ -4696,10 +4696,10 @@
local.get $0
local.set $8
local.get $1
local.set $9
local.get $2
local.set $10
local.get $9
local.get $2
local.set $9
local.get $10
i32.const 1305022427
i32.lt_u
if
@ -4727,7 +4727,7 @@
block $~lib/math/pio2_large_quot|inlined.0 (result i32)
local.get $8
local.set $11
local.get $9
local.get $10
local.set $12
local.get $12
i32.const 23
@ -4859,7 +4859,7 @@
local.get $23
i32.sub
local.get $23
local.get $10
local.get $9
select
end
local.set $24
@ -7643,11 +7643,11 @@
(local $7 i32)
block $~lib/math/NativeMath.max|inlined.0 (result f64)
local.get $0
local.set $5
local.get $1
local.set $6
local.get $5
local.get $1
local.set $5
local.get $6
local.get $5
f64.max
end
local.get $2
@ -7679,11 +7679,11 @@
(local $6 f32)
block $~lib/math/NativeMathf.max|inlined.0 (result f32)
local.get $0
local.set $5
local.get $1
local.set $6
local.get $5
local.get $1
local.set $5
local.get $6
local.get $5
f32.max
end
local.get $2
@ -7697,11 +7697,11 @@
(local $7 i32)
block $~lib/math/NativeMath.min|inlined.0 (result f64)
local.get $0
local.set $5
local.get $1
local.set $6
local.get $5
local.get $1
local.set $5
local.get $6
local.get $5
f64.min
end
local.get $2
@ -7733,11 +7733,11 @@
(local $6 f32)
block $~lib/math/NativeMathf.min|inlined.0 (result f32)
local.get $0
local.set $5
local.get $1
local.set $6
local.get $5
local.get $1
local.set $5
local.get $6
local.get $5
f32.min
end
local.get $2
@ -11708,10 +11708,10 @@
local.get $0
local.set $8
local.get $1
local.set $9
local.get $2
local.set $10
local.get $9
local.get $2
local.set $9
local.get $10
i32.const 1305022427
i32.lt_u
if
@ -11739,7 +11739,7 @@
block $~lib/math/pio2_large_quot|inlined.1 (result i32)
local.get $8
local.set $11
local.get $9
local.get $10
local.set $12
local.get $12
i32.const 23
@ -11871,7 +11871,7 @@
local.get $23
i32.sub
local.get $23
local.get $10
local.get $9
select
end
local.set $24
@ -12700,10 +12700,10 @@
local.get $0
local.set $11
local.get $1
local.set $4
local.get $2
local.set $12
local.get $4
local.get $2
local.set $4
local.get $12
i32.const 1305022427
i32.lt_u
if
@ -12731,7 +12731,7 @@
block $~lib/math/pio2_large_quot|inlined.2 (result i32)
local.get $11
local.set $13
local.get $4
local.get $12
local.set $14
local.get $14
i32.const 23
@ -12863,7 +12863,7 @@
local.get $25
i32.sub
local.get $25
local.get $12
local.get $4
select
end
local.set $26

View File

@ -84,7 +84,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -98,7 +98,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -143,7 +143,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -158,7 +158,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -167,7 +167,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -181,7 +181,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -2435,16 +2435,16 @@
call $std/operator-overloading/TesterInlineStatic#constructor
global.set $std/operator-overloading/ais2
global.get $std/operator-overloading/ais1
local.tee $0
i32.load
global.get $std/operator-overloading/ais2
local.tee $1
i32.load
global.get $std/operator-overloading/ais2
local.tee $0
i32.load
i32.add
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
local.get $0
i32.load offset=4
i32.add
call $std/operator-overloading/TesterInlineStatic#constructor
global.set $std/operator-overloading/ais
@ -2452,14 +2452,14 @@
i32.load
i32.const 4
i32.eq
local.tee $1
local.tee $0
if (result i32)
global.get $std/operator-overloading/ais
i32.load offset=4
i32.const 6
i32.eq
else
local.get $1
local.get $0
end
i32.eqz
if
@ -2475,11 +2475,11 @@
call $std/operator-overloading/TesterInlineInstance#constructor
global.set $std/operator-overloading/aii1
global.get $std/operator-overloading/aii1
local.tee $1
local.tee $0
i32.load
i32.const 1
i32.add
local.get $1
local.get $0
i32.load offset=4
i32.const 1
i32.add

View File

@ -211,7 +211,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -226,7 +226,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -2833,19 +2833,19 @@
global.set $std/operator-overloading/ais2
block $std/operator-overloading/TesterInlineStatic.add|inlined.0 (result i32)
global.get $std/operator-overloading/ais1
local.set $0
global.get $std/operator-overloading/ais2
local.set $1
global.get $std/operator-overloading/ais2
local.set $0
i32.const 0
local.get $0
i32.load
local.get $1
i32.load
local.get $0
i32.load
i32.add
local.get $0
i32.load offset=4
local.get $1
i32.load offset=4
local.get $0
i32.load offset=4
i32.add
call $std/operator-overloading/TesterInlineStatic#constructor
end
@ -2854,14 +2854,14 @@
i32.load
i32.const 4
i32.eq
local.tee $1
local.tee $0
if (result i32)
global.get $std/operator-overloading/ais
i32.load offset=4
i32.const 6
i32.eq
else
local.get $1
local.get $0
end
i32.eqz
if
@ -2879,13 +2879,13 @@
global.set $std/operator-overloading/aii1
block $std/operator-overloading/TesterInlineInstance#postInc|inlined.0 (result i32)
global.get $std/operator-overloading/aii1
local.set $1
local.set $0
i32.const 0
local.get $1
local.get $0
i32.load
i32.const 1
i32.add
local.get $1
local.get $0
i32.load offset=4
i32.const 1
i32.add

View File

@ -1166,8 +1166,8 @@
call $~lib/env/abort
unreachable
end
global.get $std/pointer/one
global.get $std/pointer/two
global.get $std/pointer/one
i32.add
global.set $std/pointer/add
global.get $std/pointer/add

View File

@ -23,7 +23,8 @@
(func $~lib/memory/memory.fill (; 1 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -99,13 +100,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -219,13 +220,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -235,7 +236,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -244,22 +245,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32
@ -1479,6 +1480,8 @@
)
(func $~lib/memory/memory.copy (; 3 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
@ -1491,9 +1494,9 @@
i32.add
local.get $0
i32.le_u
local.tee $3
local.tee $5
if (result i32)
local.get $3
local.get $5
else
local.get $0
local.get $2
@ -1538,19 +1541,19 @@
local.set $2
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -1595,19 +1598,19 @@
block
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -1742,10 +1745,10 @@
(local $2 f32)
block $std/pointer/Pointer<Entry>#constructor|inlined.0 (result i32)
i32.const 0
local.set $0
i32.const 8
local.set $1
local.get $1
i32.const 8
local.set $0
local.get $0
end
global.set $std/pointer/one
block $std/pointer/Pointer<Entry>#constructor|inlined.1 (result i32)
@ -1842,18 +1845,18 @@
end
block $std/pointer/Pointer<Entry>#add|inlined.0 (result i32)
global.get $std/pointer/one
local.set $0
global.get $std/pointer/two
local.set $1
local.get $0
global.get $std/pointer/two
local.set $0
local.get $1
local.get $0
i32.add
end
global.set $std/pointer/add
block $std/pointer/Pointer<Entry>#get:offset|inlined.2 (result i32)
global.get $std/pointer/add
local.set $1
local.get $1
local.set $0
local.get $0
end
i32.const 32
i32.eq
@ -2097,11 +2100,11 @@
unreachable
end
block $std/pointer/Pointer<f32>#constructor|inlined.0 (result i32)
i32.const 0
local.set $0
i32.const 0
local.set $1
local.get $1
i32.const 0
local.set $0
local.get $0
end
global.set $std/pointer/buf
global.get $std/pointer/buf
@ -2137,11 +2140,11 @@
end
block $std/pointer/Pointer<f32>#get|inlined.1 (result f32)
global.get $std/pointer/buf
local.set $0
i32.const 1
local.set $1
local.get $0
i32.const 1
local.set $0
local.get $1
local.get $0
i32.const 4
i32.mul
i32.add
@ -2183,11 +2186,11 @@
end
block $std/pointer/Pointer<f32>#get|inlined.3 (result f32)
global.get $std/pointer/buf
local.set $0
i32.const 1
local.set $1
local.get $0
i32.const 1
local.set $0
local.get $1
local.get $0
i32.const 4
i32.mul
i32.add
@ -2247,11 +2250,11 @@
end
block $std/pointer/Pointer<f32>#get|inlined.4 (result f32)
global.get $std/pointer/buf
local.set $0
i32.const 2
local.set $1
local.get $0
i32.const 2
local.set $0
local.get $1
local.get $0
i32.const 4
i32.mul
i32.add

View File

@ -2653,7 +2653,7 @@
if
i32.const 0
i32.const 232
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -2667,7 +2667,7 @@
if
i32.const 0
i32.const 232
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -2845,11 +2845,9 @@
end
global.get $std/runtime/ref1
local.tee $1
local.get $1
global.get $std/runtime/barrier1
call $~lib/runtime/doReallocate
local.set $2
local.get $1
local.get $2
i32.ne
if
i32.const 0

View File

@ -2697,6 +2697,8 @@
)
(func $~lib/memory/memory.copy (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
@ -2709,9 +2711,9 @@
i32.add
local.get $0
i32.le_u
local.tee $3
local.tee $5
if (result i32)
local.get $3
local.get $5
else
local.get $0
local.get $2
@ -2756,19 +2758,19 @@
local.set $2
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -2813,19 +2815,19 @@
block
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -2927,7 +2929,8 @@
(func $~lib/memory/memory.fill (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -3003,13 +3006,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -3123,13 +3126,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -3139,7 +3142,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -3148,22 +3151,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32
@ -3342,7 +3345,7 @@
if
i32.const 0
i32.const 232
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -3357,7 +3360,7 @@
if
i32.const 0
i32.const 232
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -3570,11 +3573,11 @@
global.get $std/runtime/ref1
block $~lib/runtime/REALLOCATE|inlined.0 (result i32)
global.get $std/runtime/ref1
local.set $0
global.get $std/runtime/barrier1
local.set $1
local.get $0
global.get $std/runtime/barrier1
local.set $0
local.get $1
local.get $0
call $~lib/runtime/doReallocate
end
i32.eq

View File

@ -119,7 +119,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -133,7 +133,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -156,7 +156,7 @@
if
i32.const 0
i32.const 16
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -171,7 +171,7 @@
if
i32.const 0
i32.const 16
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -190,7 +190,8 @@
(func $~lib/memory/memory.fill (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -266,13 +267,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -386,13 +387,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -402,7 +403,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -411,22 +412,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32

View File

@ -1283,6 +1283,8 @@
)
(func $~lib/memory/memory.copy (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
@ -1295,9 +1297,9 @@
i32.add
local.get $0
i32.le_u
local.tee $3
local.tee $5
if (result i32)
local.get $3
local.get $5
else
local.get $0
local.get $2
@ -1342,19 +1344,19 @@
local.set $2
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -1399,19 +1401,19 @@
block
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -1513,7 +1515,8 @@
(func $~lib/memory/memory.fill (; 7 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -1589,13 +1592,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -1709,13 +1712,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -1725,7 +1728,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -1734,22 +1737,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32
@ -1900,23 +1903,23 @@
local.set $4
block $~lib/runtime/REALLOCATE|inlined.0 (result i32)
local.get $3
local.set $5
local.get $4
local.set $6
local.get $5
local.get $4
local.set $5
local.get $6
local.get $5
call $~lib/runtime/doReallocate
end
local.set $6
local.get $6
local.set $5
local.get $5
local.get $3
i32.ne
if
local.get $0
local.get $6
local.get $5
i32.store
local.get $0
local.get $6
local.get $5
i32.store offset=4
end
local.get $0

View File

@ -1514,7 +1514,7 @@
if
i32.const 0
i32.const 136
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -1528,7 +1528,7 @@
if
i32.const 0
i32.const 136
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -1686,6 +1686,8 @@
)
(func $~lib/memory/memory.copy (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
@ -1698,9 +1700,9 @@
i32.add
local.get $0
i32.le_u
local.tee $3
local.tee $5
if (result i32)
local.get $3
local.get $5
else
local.get $0
local.get $2
@ -1745,19 +1747,19 @@
local.set $2
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -1802,19 +1804,19 @@
block
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -1926,7 +1928,7 @@
if
i32.const 0
i32.const 136
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -1941,7 +1943,7 @@
if
i32.const 0
i32.const 136
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -143,7 +143,7 @@
if
i32.const 0
i32.const 72
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -157,7 +157,7 @@
if
i32.const 0
i32.const 72
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable

View File

@ -201,7 +201,7 @@
if
i32.const 0
i32.const 72
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -216,7 +216,7 @@
if
i32.const 0
i32.const 72
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -235,7 +235,8 @@
(func $~lib/memory/memory.fill (; 7 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i64)
(local $5 i32)
(local $6 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
@ -311,13 +312,13 @@
i32.sub
i32.const 3
i32.and
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $2
@ -431,13 +432,13 @@
i32.const 4
i32.and
i32.add
local.set $3
local.set $5
local.get $0
local.get $3
local.get $5
i32.add
local.set $0
local.get $2
local.get $3
local.get $5
i32.sub
local.set $2
local.get $4
@ -447,7 +448,7 @@
i64.const 32
i64.shl
i64.or
local.set $5
local.set $6
block $break|0
loop $continue|0
local.get $2
@ -456,22 +457,22 @@
if
block
local.get $0
local.get $5
local.get $6
i64.store
local.get $0
i32.const 8
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 16
i32.add
local.get $5
local.get $6
i64.store
local.get $0
i32.const 24
i32.add
local.get $5
local.get $6
i64.store
local.get $2
i32.const 32
@ -2776,6 +2777,8 @@
)
(func $~lib/memory/memory.copy (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
block $~lib/util/memory/memmove|inlined.0
local.get $0
local.get $1
@ -2788,9 +2791,9 @@
i32.add
local.get $0
i32.le_u
local.tee $3
local.tee $5
if (result i32)
local.get $3
local.get $5
else
local.get $0
local.get $2
@ -2835,19 +2838,19 @@
local.set $2
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8
@ -2892,19 +2895,19 @@
block
block (result i32)
local.get $0
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $0
local.get $3
local.get $5
end
block (result i32)
local.get $1
local.tee $3
local.tee $5
i32.const 1
i32.add
local.set $1
local.get $3
local.get $5
end
i32.load8_u
i32.store8

View File

@ -403,7 +403,7 @@
if
i32.const 0
i32.const 64
i32.const 199
i32.const 217
i32.const 2
call $~lib/env/abort
unreachable
@ -417,7 +417,7 @@
if
i32.const 0
i32.const 64
i32.const 200
i32.const 218
i32.const 2
call $~lib/env/abort
unreachable
@ -465,7 +465,7 @@
if
i32.const 0
i32.const 64
i32.const 233
i32.const 251
i32.const 57
call $~lib/env/abort
unreachable

File diff suppressed because it is too large Load Diff