diff --git a/src/builtins.ts b/src/builtins.ts index 4dfc8030..0f057d24 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -4233,7 +4233,6 @@ function typeToRuntimeFlags(type: Type, program: Program): RTTIFlags { /** Compiles runtime type information for use by stdlib. */ export function compileRTTI(compiler: Compiler): void { - // TODO: only add this if actually accessed? var program = compiler.program; var module = compiler.module; var managedClasses = program.managedClasses; @@ -4242,22 +4241,26 @@ export function compileRTTI(compiler: Compiler): void { var data = new Uint8Array(size); writeI32(count, data, 0); var off = 8; + var arrayPrototype = assert(program.arrayPrototype); + var setPrototype = assert(program.setPrototype); + var mapPrototype = assert(program.mapPrototype); var lastId = 0; for (let [id, instance] of managedClasses) { assert(id == ++lastId); let flags: RTTIFlags = 0; - if (instance.prototype.extends(program.arrayPrototype)) { - let typeArguments = assert(instance.typeArguments); + if (instance.isAcyclic) flags |= RTTIFlags.ACYCLIC; + if (instance.prototype.extends(arrayPrototype)) { + let typeArguments = assert(instance.getTypeArgumentsTo(arrayPrototype)); assert(typeArguments.length == 1); flags |= RTTIFlags.ARRAY; flags |= RTTIFlags.VALUE_ALIGN_0 * typeToRuntimeFlags(typeArguments[0], program); - } else if (instance.prototype.extends(program.setPrototype)) { - let typeArguments = assert(instance.typeArguments); + } else if (instance.prototype.extends(setPrototype)) { + let typeArguments = assert(instance.getTypeArgumentsTo(setPrototype)); assert(typeArguments.length == 1); flags |= RTTIFlags.SET; flags |= RTTIFlags.VALUE_ALIGN_0 * typeToRuntimeFlags(typeArguments[0], program); - } else if (instance.prototype.extends(program.mapPrototype)) { - let typeArguments = assert(instance.typeArguments); + } else if (instance.prototype.extends(mapPrototype)) { + let typeArguments = assert(instance.getTypeArgumentsTo(mapPrototype)); assert(typeArguments.length == 2); flags |= RTTIFlags.MAP; flags |= RTTIFlags.KEY_ALIGN_0 * typeToRuntimeFlags(typeArguments[0], program); diff --git a/src/program.ts b/src/program.ts index 9fee86cf..2d33919d 100644 --- a/src/program.ts +++ b/src/program.ts @@ -2971,9 +2971,8 @@ export class ClassPrototype extends DeclaredElement { /** Tests if this prototype extends the specified. */ extends(basePtototype: ClassPrototype | null): bool { var current: ClassPrototype | null = this; - do { - if (current === basePtototype) return true; - } while (current = current.basePrototype); + do if (current === basePtototype) return true; + while (current = current.basePrototype); return false; } @@ -3022,6 +3021,12 @@ export class ClassPrototype extends DeclaredElement { } } +const enum AcyclicState { + UNKNOWN, + ACYCLIC, + NOT_ACYCLIC +} + /** A resolved class. */ export class Class extends TypedElement { @@ -3041,6 +3046,8 @@ export class Class extends TypedElement { overloads: Map | null = null; /** Unique class id. */ private _id: u32 = 0; + /** Remembers acyclic state. */ + private _acyclic: AcyclicState = AcyclicState.UNKNOWN; /** Gets the unique runtime id of this class. Must be a managed class. */ get id(): u32 { @@ -3225,6 +3232,100 @@ export class Class extends TypedElement { assert(false); return 0; } + + /** Tests if this class extends the specified prototype. */ + extends(prototype: ClassPrototype): bool { + return this.prototype.extends(prototype); + } + + /** Gets the concrete type arguments to the specified extendend prototype. */ + getTypeArgumentsTo(extendedPrototype: ClassPrototype): Type[] | null { + var current: Class | null = this; + do if (current.prototype === extendedPrototype) return current.typeArguments; + while (current = current.base); + return null; + } + + /** Tests if this class is inherently acyclic. */ + get isAcyclic(): bool { + var acyclic = this._acyclic; + if (acyclic == AcyclicState.UNKNOWN) { + let hasCycle = this.cyclesTo(this); + if (hasCycle) this._acyclic = acyclic = AcyclicState.NOT_ACYCLIC; + else this._acyclic = acyclic = AcyclicState.ACYCLIC; + } + return acyclic == AcyclicState.ACYCLIC; + } + + /** Tests if this class potentially forms a reference cycle to another one. */ + private cyclesTo(other: Class, except: Set = new Set()): bool { + if (except.has(this)) return false; + except.add(this); // don't recurse indefinitely + + // Find out if any field references 'other' directly or indirectly + var current: Class | null; + var members = this.members; + if (members) { + for (let member of members.values()) { + if ( + member.kind == ElementKind.FIELD && + (current = (member).type.classReference) !== null && + ( + current === other || + current.cyclesTo(other, except) + ) + ) return true; + } + } + + // Do the same for non-field data + var basePrototype: ClassPrototype | null; + + // Arrayother?> + if ((basePrototype = this.program.arrayPrototype) && this.prototype.extends(basePrototype)) { + let typeArguments = assert(this.getTypeArgumentsTo(basePrototype)); + assert(typeArguments.length == 1); + if ( + (current = typeArguments[0].classReference) !== null && + ( + current === other || + current.cyclesTo(other, except) + ) + ) return true; + + // Setother?> + } else if ((basePrototype = this.program.setPrototype) && this.prototype.extends(basePrototype)) { + let typeArguments = assert(this.getTypeArgumentsTo(basePrototype)); + assert(typeArguments.length == 1); + if ( + (current = typeArguments[0].classReference) !== null && + ( + current === other || + current.cyclesTo(other, except) + ) + ) return true; + + // Mapother?,V->other?> + } else if ((basePrototype = this.program.mapPrototype) && this.prototype.extends(basePrototype)) { + let typeArguments = assert(this.getTypeArgumentsTo(basePrototype)); + assert(typeArguments.length == 2); + if ( + (current = typeArguments[0].classReference) !== null && + ( + current === other || + current.cyclesTo(other, except) + ) + ) return true; + if ( + (current = typeArguments[1].classReference) !== null && + ( + current === other || + current.cyclesTo(other, except) + ) + ) return true; + } + return false; + } } /** A yet unresolved interface. */ diff --git a/std/assembly/common/rtti.ts b/std/assembly/common/rtti.ts index fd754832..cda38fd3 100644 --- a/std/assembly/common/rtti.ts +++ b/std/assembly/common/rtti.ts @@ -29,32 +29,34 @@ export const enum RTTIFlags { SET = 1 << 1, /** Type is a `Map`. */ MAP = 1 << 2, + /** Type is inherently acyclic. */ + ACYCLIC = 1 << 3, /** Value alignment of 1 byte. */ - VALUE_ALIGN_0 = 1 << 3, + VALUE_ALIGN_0 = 1 << 4, /** Value alignment of 2 bytes. */ - VALUE_ALIGN_1 = 1 << 4, + VALUE_ALIGN_1 = 1 << 5, /** Value alignment of 4 bytes. */ - VALUE_ALIGN_2 = 1 << 5, + VALUE_ALIGN_2 = 1 << 6, /** Value alignment of 8 bytes. */ - VALUE_ALIGN_3 = 1 << 6, + VALUE_ALIGN_3 = 1 << 7, /** Value alignment of 16 bytes. */ - VALUE_ALIGN_4 = 1 << 7, + VALUE_ALIGN_4 = 1 << 8, /** Value type is nullable. */ - VALUE_NULLABLE = 1 << 8, + VALUE_NULLABLE = 1 << 9, /** Value type is managed. */ - VALUE_MANAGED = 1 << 9, + VALUE_MANAGED = 1 << 10, /** Key alignment of 1 byte. */ - KEY_ALIGN_0 = 1 << 10, + KEY_ALIGN_0 = 1 << 11, /** Key alignment of 2 bytes. */ - KEY_ALIGN_1 = 1 << 11, + KEY_ALIGN_1 = 1 << 12, /** Key alignment of 4 bytes. */ - KEY_ALIGN_2 = 1 << 12, + KEY_ALIGN_2 = 1 << 13, /** Key alignment of 8 bytes. */ - KEY_ALIGN_3 = 1 << 13, + KEY_ALIGN_3 = 1 << 14, /** Key alignment of 16 bytes. */ - KEY_ALIGN_4 = 1 << 14, + KEY_ALIGN_4 = 1 << 15, /** Key type is nullable. */ - KEY_NULLABLE = 1 << 15, + KEY_NULLABLE = 1 << 16, /** Key type is managed. */ - KEY_MANAGED = 1 << 16 + KEY_MANAGED = 1 << 17 } diff --git a/std/assembly/runtime.ts b/std/assembly/runtime.ts index 0723159b..6adfb1b2 100644 --- a/std/assembly/runtime.ts +++ b/std/assembly/runtime.ts @@ -72,7 +72,7 @@ export namespace runtime { return newObject(byteLength, __runtime_id()); } - /** Allocates and registers a new `Array` of the specified kind using the given backing buffer.*/ + /** Allocates and registers a new `Array` of the specified kind using the given backing buffer. */ // @ts-ignore: decorator @unsafe export function newArray(id: u32, buffer: usize): usize { diff --git a/tests/compiler/runtime-arena.optimized.wat b/tests/compiler/runtime-arena.optimized.wat index ef8780ac..84b7f875 100644 --- a/tests/compiler/runtime-arena.optimized.wat +++ b/tests/compiler/runtime-arena.optimized.wat @@ -8,8 +8,7 @@ (memory $0 1) (data (i32.const 8) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (data (i32.const 56) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 96) "\11") - (data (i32.const 232) "!\00\00\00\0e") + (data (i32.const 96) "\11\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e") (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (export "memory" (memory $0)) @@ -245,7 +244,7 @@ i32.load end local.tee $3 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -281,7 +280,7 @@ i32.shr_u i32.store offset=12 local.get $3 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/runtime-arena.untouched.wat b/tests/compiler/runtime-arena.untouched.wat index cdcc6943..0930f7a2 100644 --- a/tests/compiler/runtime-arena.untouched.wat +++ b/tests/compiler/runtime-arena.untouched.wat @@ -8,7 +8,7 @@ (memory $0 1) (data (i32.const 8) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 56) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 96) "\11\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00") + (data (i32.const 96) "\11\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) @@ -280,7 +280,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -316,7 +316,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/runtime-default.optimized.wat b/tests/compiler/runtime-default.optimized.wat index 29ef9228..bbe9419d 100644 --- a/tests/compiler/runtime-default.optimized.wat +++ b/tests/compiler/runtime-default.optimized.wat @@ -13,8 +13,7 @@ (data (i32.const 24) "~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s") (data (i32.const 72) "\10\00\00\00(") (data (i32.const 88) "~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 128) "\12") - (data (i32.const 264) "!\00\00\00\0e") + (data (i32.const 128) "\12\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08") (global $~lib/allocator/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/collector/itcm/state (mut i32) (i32.const 0)) (global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0)) @@ -1486,7 +1485,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -1533,7 +1532,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/runtime-default.untouched.wat b/tests/compiler/runtime-default.untouched.wat index 0259d404..377157bd 100644 --- a/tests/compiler/runtime-default.untouched.wat +++ b/tests/compiler/runtime-default.untouched.wat @@ -11,7 +11,7 @@ (memory $0 1) (data (i32.const 8) "\10\00\00\00,\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s\00") (data (i32.const 72) "\10\00\00\00(\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 128) "\12\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 128) "\12\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) @@ -1787,7 +1787,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -1838,7 +1838,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/runtime/flags.optimized.wat b/tests/compiler/runtime/flags.optimized.wat index ed72b507..98c86df6 100644 --- a/tests/compiler/runtime/flags.optimized.wat +++ b/tests/compiler/runtime/flags.optimized.wat @@ -15,9 +15,11 @@ (data (i32.const 72) "~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s") (data (i32.const 120) "\11\00\00\00(") (data (i32.const 136) "~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 176) "+") - (data (i32.const 320) "\t\00\00\00\0f\00\00\00\11\00\00\00\0f\00\00\00!\00\00\00\0f\00\00\00A\00\00\00\0f\00\00\00\81\00\00\00\0f") - (data (i32.const 368) "!\02\00\00\0f\00\00\00!\03\00\00\0f\00\00\00\n\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\"\00\00\00\00\00\00\00B\00\00\00\00\00\00\00\82\00\00\00\00\00\00\00\"\02\00\00\00\00\00\00\"\03\00\00\00\00\00\00\0c@\00\00\00\00\00\00\14 \00\00\00\00\00\00$\10\00\00\00\00\00\00D\08\00\00\00\00\00\00\84\04\00\00\00\00\00\00\0c\10\01\00\00\00\00\00\0c\90\01\00\00\00\00\00$\06\00\00\00\00\00\00$\07\00\00\00\00\00\00$\93\01") + (data (i32.const 176) ";\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\0f\00\00\00)\00\00\00\0f\00\00\00I\00\00\00\0f\00\00\00\89\00\00\00\0f\00\00\00\t\01\00\00\0f\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0f\00\00\00I\06\00\00\0f\00\00\00\1a\00\00\00\00\00\00\00*\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00\n\01\00\00\00\00\00\00J\04\00\00\00\00\00\00J\06\00\00\00\00\00\00\1c\80\00\00\00\00\00\00,@\00\00\00\00\00\00L \00\00\00\00\00\00\8c\10\00\00\00\00\00\00\0c\t\00\00\00\00\00\00\1c \02\00\00\00\00\00\1c \03\00\00\00\00\00L\0c\00\00\00\00\00\00L\0e\00\00\00\00\00\00L&\03\00\00\00\00\00\08") + (data (i32.const 560) "A\04\00\00\0f\00\00\00\08") + (data (i32.const 584) "B\04\00\00\00\00\00\00\08") + (data (i32.const 608) "D \02") + (data (i32.const 624) "D$\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") (global $~lib/allocator/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/collector/itcm/state (mut i32) (i32.const 0)) (global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0)) @@ -74,7 +76,7 @@ i32.const 320 i32.load end - i32.const 9 + i32.const 25 i32.ne if i32.const 0 @@ -96,7 +98,7 @@ i32.const 328 i32.load end - i32.const 17 + i32.const 41 i32.ne if i32.const 0 @@ -118,7 +120,7 @@ i32.const 336 i32.load end - i32.const 33 + i32.const 73 i32.ne if i32.const 0 @@ -140,7 +142,7 @@ i32.const 344 i32.load end - i32.const 65 + i32.const 137 i32.ne if i32.const 0 @@ -162,7 +164,7 @@ i32.const 352 i32.load end - i32.const 129 + i32.const 265 i32.ne if i32.const 0 @@ -184,7 +186,7 @@ i32.const 368 i32.load end - i32.const 545 + i32.const 1097 i32.ne if i32.const 0 @@ -206,7 +208,7 @@ i32.const 376 i32.load end - i32.const 801 + i32.const 1609 i32.ne if i32.const 0 @@ -228,7 +230,7 @@ i32.const 384 i32.load end - i32.const 10 + i32.const 26 i32.ne if i32.const 0 @@ -250,7 +252,7 @@ i32.const 392 i32.load end - i32.const 18 + i32.const 42 i32.ne if i32.const 0 @@ -272,7 +274,7 @@ i32.const 400 i32.load end - i32.const 34 + i32.const 74 i32.ne if i32.const 0 @@ -294,7 +296,7 @@ i32.const 408 i32.load end - i32.const 66 + i32.const 138 i32.ne if i32.const 0 @@ -316,7 +318,7 @@ i32.const 416 i32.load end - i32.const 130 + i32.const 266 i32.ne if i32.const 0 @@ -338,7 +340,7 @@ i32.const 424 i32.load end - i32.const 546 + i32.const 1098 i32.ne if i32.const 0 @@ -360,7 +362,7 @@ i32.const 432 i32.load end - i32.const 802 + i32.const 1610 i32.ne if i32.const 0 @@ -382,7 +384,7 @@ i32.const 440 i32.load end - i32.const 16396 + i32.const 32796 i32.ne if i32.const 0 @@ -404,7 +406,7 @@ i32.const 448 i32.load end - i32.const 8212 + i32.const 16428 i32.ne if i32.const 0 @@ -426,7 +428,7 @@ i32.const 456 i32.load end - i32.const 4132 + i32.const 8268 i32.ne if i32.const 0 @@ -448,7 +450,7 @@ i32.const 464 i32.load end - i32.const 2116 + i32.const 4236 i32.ne if i32.const 0 @@ -470,7 +472,7 @@ i32.const 472 i32.load end - i32.const 1156 + i32.const 2316 i32.ne if i32.const 0 @@ -492,7 +494,7 @@ i32.const 480 i32.load end - i32.const 69644 + i32.const 139292 i32.ne if i32.const 0 @@ -514,7 +516,7 @@ i32.const 488 i32.load end - i32.const 102412 + i32.const 204828 i32.ne if i32.const 0 @@ -536,7 +538,7 @@ i32.const 496 i32.load end - i32.const 1572 + i32.const 3148 i32.ne if i32.const 0 @@ -558,7 +560,7 @@ i32.const 504 i32.load end - i32.const 1828 + i32.const 3660 i32.ne if i32.const 0 @@ -580,7 +582,7 @@ i32.const 512 i32.load end - i32.const 103204 + i32.const 206412 i32.ne if i32.const 0 @@ -591,7 +593,237 @@ unreachable end ) - (func $start:runtime/flags (; 26 ;) (type $FUNCSIG$v) + (func $runtime/flags/test (; 26 ;) (type $FUNCSIG$v) + i32.const 43 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 520 + i32.load + end + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 27 ;) (type $FUNCSIG$v) + i32.const 44 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 528 + i32.load + end + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 28 ;) (type $FUNCSIG$v) + i32.const 45 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 536 + i32.load + end + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 29 ;) (type $FUNCSIG$v) + i32.const 47 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 552 + i32.load + end + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 30 ;) (type $FUNCSIG$v) + i32.const 49 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 568 + i32.load + end + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 31 ;) (type $FUNCSIG$v) + i32.const 50 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 576 + i32.load + end + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 32 ;) (type $FUNCSIG$v) + i32.const 52 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 592 + i32.load + end + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 33 ;) (type $FUNCSIG$v) + i32.const 53 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 600 + i32.load + end + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 34 ;) (type $FUNCSIG$v) + i32.const 55 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 616 + i32.load + end + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 35 ;) (type $FUNCSIG$v) + i32.const 57 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 632 + i32.load + end + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 36 ;) (type $FUNCSIG$v) + i32.const 58 + i32.const 176 + i32.load + i32.gt_u + if (result i32) + unreachable + else + i32.const 640 + i32.load + end + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:runtime/flags (; 37 ;) (type $FUNCSIG$v) block call $runtime/flags/test<~lib/array/Array> end @@ -664,8 +896,41 @@ block call $runtime/flags/test<~lib/map/Map> end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end + block + call $runtime/flags/test + end ) - (func $~lib/runtime/runtime.instanceof (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.instanceof (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -700,7 +965,7 @@ end i32.const 0 ) - (func $~lib/allocator/tlsf/Root#setSLMap (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/allocator/tlsf/Root#setSLMap (; 39 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 i32.const 22 i32.ge_u @@ -720,7 +985,7 @@ local.get $2 i32.store offset=4 ) - (func $~lib/allocator/tlsf/Root#setHead (; 29 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/allocator/tlsf/Root#setHead (; 40 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 i32.const 22 i32.ge_u @@ -755,7 +1020,7 @@ local.get $3 i32.store offset=96 ) - (func $~lib/allocator/tlsf/Block#get:right (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Block#get:right (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load i32.const -4 @@ -789,7 +1054,7 @@ end local.get $0 ) - (func $~lib/allocator/tlsf/fls (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/fls (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -805,7 +1070,7 @@ i32.clz i32.sub ) - (func $~lib/allocator/tlsf/Root#getHead (; 32 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#getHead (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 i32.const 22 i32.ge_u @@ -839,7 +1104,7 @@ i32.add i32.load offset=96 ) - (func $~lib/allocator/tlsf/Root#getSLMap (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/allocator/tlsf/Root#getSLMap (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.const 22 i32.ge_u @@ -858,7 +1123,7 @@ i32.add i32.load offset=4 ) - (func $~lib/allocator/tlsf/Root#remove (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#remove (; 45 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -987,7 +1252,7 @@ end end ) - (func $~lib/allocator/tlsf/Block#get:left (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Block#get:left (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load i32.const 2 @@ -1017,7 +1282,7 @@ end local.get $0 ) - (func $~lib/allocator/tlsf/Root#setJump (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#setJump (; 47 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 i32.load i32.const 1 @@ -1062,7 +1327,7 @@ local.get $0 i32.store ) - (func $~lib/allocator/tlsf/Root#insert (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#insert (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1292,7 +1557,7 @@ i32.or call $~lib/allocator/tlsf/Root#setSLMap ) - (func $~lib/allocator/tlsf/Root#addMemory (; 38 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/allocator/tlsf/Root#addMemory (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $1 @@ -1415,7 +1680,7 @@ local.get $1 call $~lib/allocator/tlsf/Root#insert ) - (func $~lib/allocator/tlsf/ffs (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/ffs (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if @@ -1429,7 +1694,7 @@ local.get $0 i32.ctz ) - (func $~lib/allocator/tlsf/Root#search (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/allocator/tlsf/Root#search (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $1 @@ -1541,7 +1806,7 @@ end end ) - (func $~lib/allocator/tlsf/Root#use (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#use (; 52 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -1652,7 +1917,7 @@ i32.const 8 i32.add ) - (func $~lib/allocator/tlsf/__mem_allocate (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/__mem_allocate (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -1678,14 +1943,14 @@ if unreachable end - i32.const 528 + i32.const 656 local.set $2 - i32.const 528 + i32.const 656 global.set $~lib/allocator/tlsf/ROOT i32.const 2912 i32.const 0 i32.store - i32.const 528 + i32.const 656 i32.const 0 i32.store i32.const 0 @@ -1695,7 +1960,7 @@ i32.const 22 i32.lt_u if - i32.const 528 + i32.const 656 local.get $1 i32.const 0 call $~lib/allocator/tlsf/Root#setSLMap @@ -1706,7 +1971,7 @@ i32.const 32 i32.lt_u if - i32.const 528 + i32.const 656 local.get $1 local.get $3 i32.const 0 @@ -1725,8 +1990,8 @@ br $repeat|0 end end - i32.const 528 - i32.const 3448 + i32.const 656 + i32.const 3576 current_memory i32.const 16 i32.shl @@ -1822,7 +2087,7 @@ local.get $1 call $~lib/allocator/tlsf/Root#use ) - (func $~lib/util/runtime/allocate (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/runtime/allocate (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const 1 i32.const 32 @@ -1849,7 +2114,7 @@ i32.const 16 i32.add ) - (func $~lib/collector/itcm/maybeInit (; 44 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/maybeInit (; 55 ;) (type $FUNCSIG$v) (local $0 i32) global.get $~lib/collector/itcm/state i32.eqz @@ -1892,7 +2157,7 @@ global.set $~lib/collector/itcm/state end ) - (func $~lib/collector/itcm/ManagedObjectList#push (; 45 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObjectList#push (; 56 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load offset=12 @@ -1920,7 +2185,7 @@ local.get $1 i32.store offset=12 ) - (func $~lib/collector/itcm/__ref_register (; 46 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/__ref_register (; 57 ;) (type $FUNCSIG$vi) (param $0 i32) call $~lib/collector/itcm/maybeInit local.get $0 i32.const 16 @@ -1937,10 +2202,10 @@ local.get $0 call $~lib/collector/itcm/ManagedObjectList#push ) - (func $~lib/util/runtime/register (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/runtime/register (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 - i32.const 528 + i32.const 656 i32.le_u if i32.const 0 @@ -1974,25 +2239,25 @@ end local.get $0 ) - (func $~lib/runtime/runtime.newObject (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.newObject (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 call $~lib/util/runtime/allocate local.get $1 call $~lib/util/runtime/register ) - (func $~lib/runtime/runtime.newString (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.newString (; 60 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.shl i32.const 17 call $~lib/runtime/runtime.newObject ) - (func $~lib/runtime/runtime.newArrayBuffer (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.newArrayBuffer (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 call $~lib/runtime/runtime.newObject ) - (func $~lib/collector/itcm/ManagedObject#makeGray (; 51 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#makeGray (; 62 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) global.get $~lib/collector/itcm/iter @@ -2032,7 +2297,7 @@ i32.or i32.store offset=8 ) - (func $~lib/collector/itcm/__ref_link (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/__ref_link (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) call $~lib/collector/itcm/maybeInit global.get $~lib/collector/itcm/white @@ -2063,7 +2328,7 @@ call $~lib/collector/itcm/ManagedObject#makeGray end ) - (func $~lib/runtime/runtime.newArray (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.newArray (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2091,7 +2356,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -2138,7 +2403,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 @@ -2168,15 +2433,15 @@ end local.get $2 ) - (func $~lib/runtime/runtime.retain (; 54 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/runtime.retain (; 65 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 global.get $~lib/runtime/ROOT call $~lib/collector/itcm/__ref_link ) - (func $~lib/runtime/runtime.release (; 55 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/runtime.release (; 66 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/allocator/tlsf/__mem_free (; 56 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/allocator/tlsf/__mem_free (; 67 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2214,7 +2479,7 @@ end end ) - (func $~lib/collector/itcm/step (; 57 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/step (; 68 ;) (type $FUNCSIG$v) (local $0 i32) block $break|0 block $case3|0 @@ -2300,7 +2565,7 @@ i32.and global.set $~lib/collector/itcm/iter local.get $0 - i32.const 528 + i32.const 656 i32.ge_u if local.get $0 @@ -2319,7 +2584,7 @@ end end ) - (func $~lib/collector/itcm/__ref_collect (; 58 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/__ref_collect (; 69 ;) (type $FUNCSIG$v) call $~lib/collector/itcm/maybeInit loop $continue|0 global.get $~lib/collector/itcm/state @@ -2338,18 +2603,18 @@ br_if $continue|1 end ) - (func $~lib/runtime/runtime.collect (; 59 ;) (type $FUNCSIG$v) + (func $~lib/runtime/runtime.collect (; 70 ;) (type $FUNCSIG$v) call $~lib/collector/itcm/__ref_collect ) - (func $start (; 60 ;) (type $FUNCSIG$v) + (func $start (; 71 ;) (type $FUNCSIG$v) call $start:runtime/flags i32.const 0 call $~lib/util/runtime/allocate - i32.const 43 + i32.const 59 call $~lib/util/runtime/register global.set $~lib/runtime/ROOT ) - (func $~lib/collector/itcm/__ref_mark (; 61 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/__ref_mark (; 72 ;) (type $FUNCSIG$vi) (param $0 i32) call $~lib/collector/itcm/maybeInit global.get $~lib/collector/itcm/white local.get $0 @@ -2365,7 +2630,7 @@ call $~lib/collector/itcm/ManagedObject#makeGray end ) - (func $~lib/runtime/__gc_mark_roots (; 62 ;) (type $FUNCSIG$v) + (func $~lib/runtime/__gc_mark_roots (; 73 ;) (type $FUNCSIG$v) (local $0 i32) global.get $~lib/runtime/ROOT local.tee $0 @@ -2374,7 +2639,7 @@ call $~lib/collector/itcm/__ref_mark end ) - (func $~lib/array/Array#__traverse (; 63 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#__traverse (; 74 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2407,7 +2672,7 @@ end end ) - (func $~lib/array/Array#__traverse (; 64 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#__traverse (; 75 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2443,7 +2708,7 @@ end end ) - (func $~lib/set/Set#__traverse (; 65 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#__traverse (; 76 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2487,7 +2752,7 @@ end end ) - (func $~lib/set/Set#__traverse (; 66 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#__traverse (; 77 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2534,7 +2799,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 67 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 78 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2578,7 +2843,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 68 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 79 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2625,7 +2890,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 69 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 80 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2669,7 +2934,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 70 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 81 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2716,7 +2981,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 71 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 82 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2773,69 +3038,330 @@ end end ) - (func $~lib/runtime/__gc_mark_members (; 72 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__traverse (; 83 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=4 + local.tee $1 + local.get $0 + i32.load offset=8 + i32.add + local.set $0 + loop $continue|0 + local.get $1 + local.get $0 + i32.lt_u + if + local.get $1 + i32.load + local.tee $2 + call $~lib/collector/itcm/__ref_mark + i32.const 47 + local.get $2 + call $~lib/runtime/__gc_mark_members + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $continue|0 + end + end + ) + (func $~lib/set/Set#__traverse (; 84 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=8 + local.tee $1 + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + local.get $1 + i32.add + local.set $0 + loop $continue|0 + local.get $1 + local.get $0 + i32.lt_u + if + local.get $1 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + i32.load + local.tee $2 + call $~lib/collector/itcm/__ref_mark + i32.const 50 + local.get $2 + call $~lib/runtime/__gc_mark_members + end + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $continue|0 + end + end + ) + (func $~lib/map/Map#__traverse (; 85 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=8 + local.tee $1 + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + local.get $1 + i32.add + local.set $0 + loop $continue|0 + local.get $1 + local.get $0 + i32.lt_u + if + local.get $1 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + i32.load + local.tee $2 + call $~lib/collector/itcm/__ref_mark + i32.const 53 + local.get $2 + call $~lib/runtime/__gc_mark_members + end + local.get $1 + i32.const 12 + i32.add + local.set $1 + br $continue|0 + end + end + ) + (func $~lib/map/Map#__traverse (; 86 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=8 + local.tee $1 + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + local.get $1 + i32.add + local.set $0 + loop $continue|0 + local.get $1 + local.get $0 + i32.lt_u + if + local.get $1 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $1 + i32.load offset=4 + local.tee $2 + call $~lib/collector/itcm/__ref_mark + i32.const 55 + local.get $2 + call $~lib/runtime/__gc_mark_members + end + local.get $1 + i32.const 12 + i32.add + local.set $1 + br $continue|0 + end + end + ) + (func $~lib/runtime/__gc_mark_members (; 87 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $folding-inner1 block $folding-inner0 block $invalid block $~lib/runtime/Root - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/set/Set - block $~lib/set/Set - block $~lib/array/Array - block $~lib/array/Array - block $runtime/flags/Ref - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/arraybuffer/ArrayBufferView - block $~lib/vector/V128 - block $~lib/number/F64 - block $~lib/number/F32 - block $~lib/number/Bool - block $~lib/number/Usize - block $~lib/number/U64 - block $~lib/number/U32 - block $~lib/number/U16 - block $~lib/number/U8 - block $~lib/number/Isize - block $~lib/number/I64 - block $~lib/number/I32 - block $~lib/number/I16 - block $~lib/number/I8 - local.get $0 - i32.const 1 - i32.sub - br_table $~lib/number/I8 $~lib/number/I16 $~lib/number/I32 $~lib/number/I64 $~lib/number/Isize $~lib/number/U8 $~lib/number/U16 $~lib/number/U32 $~lib/number/U64 $~lib/number/Usize $~lib/number/Bool $~lib/number/F32 $~lib/number/F64 $~lib/vector/V128 $~lib/arraybuffer/ArrayBufferView $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $runtime/flags/Ref $~lib/array/Array $~lib/array/Array $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $~lib/set/Set $~lib/set/Set $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/runtime/Root $invalid + block $runtime/flags/InnerCycleMapValue + block $runtime/flags/InnerCycleMapKey + block $~lib/map/Map + block $runtime/flags/IndirectCycleMapValue + block $~lib/map/Map + block $runtime/flags/IndirectCycleMapKey + block $runtime/flags/InnerCycleSet + block $~lib/set/Set + block $runtime/flags/IndirectCycleSet + block $runtime/flags/InnerCycleArray + block $~lib/array/Array + block $runtime/flags/IndirectCycleArray + block $runtime/flags/IndirectCycleBack + block $runtime/flags/IndirectCycle + block $runtime/flags/DirectCycle + block $runtime/flags/NoCycle + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/set/Set + block $~lib/set/Set + block $~lib/array/Array + block $~lib/array/Array + block $runtime/flags/Ref + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/arraybuffer/ArrayBufferView + block $~lib/vector/V128 + block $~lib/number/F64 + block $~lib/number/F32 + block $~lib/number/Bool + block $~lib/number/Usize + block $~lib/number/U64 + block $~lib/number/U32 + block $~lib/number/U16 + block $~lib/number/U8 + block $~lib/number/Isize + block $~lib/number/I64 + block $~lib/number/I32 + block $~lib/number/I16 + block $~lib/number/I8 + local.get $0 + i32.const 1 + i32.sub + br_table $~lib/number/I8 $~lib/number/I16 $~lib/number/I32 $~lib/number/I64 $~lib/number/Isize $~lib/number/U8 $~lib/number/U16 $~lib/number/U32 $~lib/number/U64 $~lib/number/Usize $~lib/number/Bool $~lib/number/F32 $~lib/number/F64 $~lib/vector/V128 $~lib/arraybuffer/ArrayBufferView $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $runtime/flags/Ref $~lib/array/Array $~lib/array/Array $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $~lib/set/Set $~lib/set/Set $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $runtime/flags/NoCycle $runtime/flags/DirectCycle $runtime/flags/IndirectCycle $runtime/flags/IndirectCycleBack $runtime/flags/IndirectCycleArray $~lib/array/Array $runtime/flags/InnerCycleArray $runtime/flags/IndirectCycleSet $~lib/set/Set $runtime/flags/InnerCycleSet $runtime/flags/IndirectCycleMapKey $~lib/map/Map $runtime/flags/IndirectCycleMapValue $~lib/map/Map $runtime/flags/InnerCycleMapKey $runtime/flags/InnerCycleMapValue $~lib/runtime/Root $invalid + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + local.get $1 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 16 + local.get $0 + call $~lib/runtime/__gc_mark_members + end + return + end + return end return end return end + local.get $1 + call $~lib/array/Array#__traverse return end + local.get $1 + call $~lib/array/Array#__traverse return end + local.get $1 + call $~lib/set/Set#__traverse return end + local.get $1 + call $~lib/set/Set#__traverse return end + local.get $1 + call $~lib/map/Map#__traverse return end + local.get $1 + call $~lib/map/Map#__traverse return end + local.get $1 + call $~lib/map/Map#__traverse return end + local.get $1 + call $~lib/map/Map#__traverse return end + local.get $1 + call $~lib/map/Map#__traverse return end return end + local.get $1 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 44 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end + local.get $1 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 46 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 @@ -2844,52 +3370,122 @@ if local.get $0 call $~lib/collector/itcm/__ref_mark - i32.const 16 + i32.const 45 local.get $0 call $~lib/runtime/__gc_mark_members end return end + local.get $1 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 48 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end + local.get $1 + call $~lib/array/Array#__traverse return end + local.get $1 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 47 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/array/Array#__traverse + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 51 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/array/Array#__traverse + call $~lib/set/Set#__traverse return end local.get $1 - call $~lib/set/Set#__traverse + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 50 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/set/Set#__traverse + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 54 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/map/Map#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 56 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/map/Map#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 53 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $0 + if + local.get $0 + call $~lib/collector/itcm/__ref_mark + i32.const 55 + local.get $0 + call $~lib/runtime/__gc_mark_members + end return end return @@ -2908,7 +3504,7 @@ i32.load offset=8 call $~lib/collector/itcm/__ref_mark ) - (func $null (; 73 ;) (type $FUNCSIG$v) + (func $null (; 88 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/runtime/flags.ts b/tests/compiler/runtime/flags.ts index 7c0eed64..2c642c9a 100644 --- a/tests/compiler/runtime/flags.ts +++ b/tests/compiler/runtime/flags.ts @@ -9,34 +9,113 @@ function test(flags: RTTIFlags): void { ); } +// structure flags + class Ref {} const VALUE_ALIGN_REF = sizeof() == 4 ? RTTIFlags.VALUE_ALIGN_2 : RTTIFlags.VALUE_ALIGN_3; const KEY_ALIGN_REF = sizeof() == 4 ? RTTIFlags.KEY_ALIGN_2 : RTTIFlags.KEY_ALIGN_3; -test>(RTTIFlags.ARRAY | RTTIFlags.VALUE_ALIGN_0); -test>(RTTIFlags.ARRAY | RTTIFlags.VALUE_ALIGN_1); -test>(RTTIFlags.ARRAY | RTTIFlags.VALUE_ALIGN_2); -test>(RTTIFlags.ARRAY | RTTIFlags.VALUE_ALIGN_3); -test>(RTTIFlags.ARRAY | RTTIFlags.VALUE_ALIGN_4); -test>(RTTIFlags.ARRAY | VALUE_ALIGN_REF | RTTIFlags.VALUE_MANAGED); -test>(RTTIFlags.ARRAY | VALUE_ALIGN_REF | RTTIFlags.VALUE_NULLABLE | RTTIFlags.VALUE_MANAGED); +test>(RTTIFlags.ARRAY | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_0); +test>(RTTIFlags.ARRAY | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_1); +test>(RTTIFlags.ARRAY | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_2); +test>(RTTIFlags.ARRAY | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_3); +test>(RTTIFlags.ARRAY | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_4); +test>(RTTIFlags.ARRAY | RTTIFlags.ACYCLIC | VALUE_ALIGN_REF | RTTIFlags.VALUE_MANAGED); +test>(RTTIFlags.ARRAY | RTTIFlags.ACYCLIC | VALUE_ALIGN_REF | RTTIFlags.VALUE_NULLABLE | RTTIFlags.VALUE_MANAGED); -test>(RTTIFlags.SET | RTTIFlags.VALUE_ALIGN_0); -test>(RTTIFlags.SET | RTTIFlags.VALUE_ALIGN_1); -test>(RTTIFlags.SET | RTTIFlags.VALUE_ALIGN_2); -test>(RTTIFlags.SET | RTTIFlags.VALUE_ALIGN_3); -test>(RTTIFlags.SET | RTTIFlags.VALUE_ALIGN_4); -test>(RTTIFlags.SET | VALUE_ALIGN_REF | RTTIFlags.VALUE_MANAGED); -test>(RTTIFlags.SET | VALUE_ALIGN_REF | RTTIFlags.VALUE_NULLABLE | RTTIFlags.VALUE_MANAGED); +test>(RTTIFlags.SET | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_0); +test>(RTTIFlags.SET | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_1); +test>(RTTIFlags.SET | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_2); +test>(RTTIFlags.SET | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_3); +test>(RTTIFlags.SET | RTTIFlags.ACYCLIC | RTTIFlags.VALUE_ALIGN_4); +test>(RTTIFlags.SET | RTTIFlags.ACYCLIC | VALUE_ALIGN_REF | RTTIFlags.VALUE_MANAGED); +test>(RTTIFlags.SET | RTTIFlags.ACYCLIC | VALUE_ALIGN_REF | RTTIFlags.VALUE_NULLABLE | RTTIFlags.VALUE_MANAGED); -test>(RTTIFlags.MAP | RTTIFlags.KEY_ALIGN_4 | RTTIFlags.VALUE_ALIGN_0); -test>(RTTIFlags.MAP | RTTIFlags.KEY_ALIGN_3 | RTTIFlags.VALUE_ALIGN_1); -test>(RTTIFlags.MAP | RTTIFlags.KEY_ALIGN_2 | RTTIFlags.VALUE_ALIGN_2); -test>(RTTIFlags.MAP | RTTIFlags.KEY_ALIGN_1 | RTTIFlags.VALUE_ALIGN_3); -test>(RTTIFlags.MAP | RTTIFlags.KEY_ALIGN_0 | RTTIFlags.VALUE_ALIGN_4); -test>(RTTIFlags.MAP | KEY_ALIGN_REF | RTTIFlags.KEY_MANAGED | RTTIFlags.VALUE_ALIGN_0); -test>(RTTIFlags.MAP |KEY_ALIGN_REF | RTTIFlags.KEY_NULLABLE | RTTIFlags.KEY_MANAGED | RTTIFlags.VALUE_ALIGN_0); -test>(RTTIFlags.MAP | RTTIFlags.KEY_ALIGN_0 | RTTIFlags.VALUE_MANAGED | VALUE_ALIGN_REF); -test>(RTTIFlags.MAP | RTTIFlags.KEY_ALIGN_0 | RTTIFlags.VALUE_NULLABLE | RTTIFlags.VALUE_MANAGED | VALUE_ALIGN_REF); -test>(RTTIFlags.MAP | RTTIFlags.KEY_NULLABLE | RTTIFlags.KEY_MANAGED | KEY_ALIGN_REF | RTTIFlags.VALUE_NULLABLE | RTTIFlags.VALUE_MANAGED | VALUE_ALIGN_REF); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC | RTTIFlags.KEY_ALIGN_4 | RTTIFlags.VALUE_ALIGN_0); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC | RTTIFlags.KEY_ALIGN_3 | RTTIFlags.VALUE_ALIGN_1); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC | RTTIFlags.KEY_ALIGN_2 | RTTIFlags.VALUE_ALIGN_2); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC | RTTIFlags.KEY_ALIGN_1 | RTTIFlags.VALUE_ALIGN_3); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC | RTTIFlags.KEY_ALIGN_0 | RTTIFlags.VALUE_ALIGN_4); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC | KEY_ALIGN_REF | RTTIFlags.KEY_MANAGED | RTTIFlags.VALUE_ALIGN_0); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC |KEY_ALIGN_REF | RTTIFlags.KEY_NULLABLE | RTTIFlags.KEY_MANAGED | RTTIFlags.VALUE_ALIGN_0); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC | RTTIFlags.KEY_ALIGN_0 | RTTIFlags.VALUE_MANAGED | VALUE_ALIGN_REF); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC | RTTIFlags.KEY_ALIGN_0 | RTTIFlags.VALUE_NULLABLE | RTTIFlags.VALUE_MANAGED | VALUE_ALIGN_REF); +test>(RTTIFlags.MAP | RTTIFlags.ACYCLIC | RTTIFlags.KEY_NULLABLE | RTTIFlags.KEY_MANAGED | KEY_ALIGN_REF | RTTIFlags.VALUE_NULLABLE | RTTIFlags.VALUE_MANAGED | VALUE_ALIGN_REF); + +// cycle detection + +class NoCycle { + a: i32; +} + +test(RTTIFlags.ACYCLIC); + +class DirectCycle { + a: DirectCycle; +} + +test(RTTIFlags.NONE); + +class IndirectCycle { + a: IndirectCycleBack; +} +class IndirectCycleBack { + a: IndirectCycle; +} + +test(RTTIFlags.NONE); + +// array + +class IndirectCycleArray { + a: Array; +} + +test(RTTIFlags.NONE); + +class InnerCycleArray { + a: IndirectCycleArray; +} + +test(RTTIFlags.ACYCLIC); + +// set + +class IndirectCycleSet { + a: Set; +} + +test(RTTIFlags.NONE); + +class InnerCycleSet { + a: IndirectCycleSet; +} + +test(RTTIFlags.ACYCLIC); + +// map + +class IndirectCycleMapKey { + a: Map; +} + +test(RTTIFlags.NONE); + +class IndirectCycleMapValue { + a: Map; +} + +test(RTTIFlags.NONE); + +class InnerCycleMapKey { + a: IndirectCycleMapKey; +} + +test(RTTIFlags.ACYCLIC); + +class InnerCycleMapValue { + a: IndirectCycleMapValue; +} + +test(RTTIFlags.ACYCLIC); diff --git a/tests/compiler/runtime/flags.untouched.wat b/tests/compiler/runtime/flags.untouched.wat index 01061d0d..424ae076 100644 --- a/tests/compiler/runtime/flags.untouched.wat +++ b/tests/compiler/runtime/flags.untouched.wat @@ -12,11 +12,11 @@ (data (i32.const 8) "\11\00\00\00 \00\00\00\00\00\00\00\00\00\00\00r\00u\00n\00t\00i\00m\00e\00/\00f\00l\00a\00g\00s\00.\00t\00s\00") (data (i32.const 56) "\11\00\00\00,\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s\00") (data (i32.const 120) "\11\00\00\00(\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 176) "+\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\0f\00\00\00\11\00\00\00\0f\00\00\00!\00\00\00\0f\00\00\00A\00\00\00\0f\00\00\00\81\00\00\00\0f\00\00\00\00\00\00\00\00\00\00\00!\02\00\00\0f\00\00\00!\03\00\00\0f\00\00\00\n\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\"\00\00\00\00\00\00\00B\00\00\00\00\00\00\00\82\00\00\00\00\00\00\00\"\02\00\00\00\00\00\00\"\03\00\00\00\00\00\00\0c@\00\00\00\00\00\00\14 \00\00\00\00\00\00$\10\00\00\00\00\00\00D\08\00\00\00\00\00\00\84\04\00\00\00\00\00\00\0c\10\01\00\00\00\00\00\0c\90\01\00\00\00\00\00$\06\00\00\00\00\00\00$\07\00\00\00\00\00\00$\93\01\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 176) ";\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\0f\00\00\00)\00\00\00\0f\00\00\00I\00\00\00\0f\00\00\00\89\00\00\00\0f\00\00\00\t\01\00\00\0f\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0f\00\00\00I\06\00\00\0f\00\00\00\1a\00\00\00\00\00\00\00*\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00\n\01\00\00\00\00\00\00J\04\00\00\00\00\00\00J\06\00\00\00\00\00\00\1c\80\00\00\00\00\00\00,@\00\00\00\00\00\00L \00\00\00\00\00\00\8c\10\00\00\00\00\00\00\0c\t\00\00\00\00\00\00\1c \02\00\00\00\00\00\1c \03\00\00\00\00\00L\0c\00\00\00\00\00\00L\0e\00\00\00\00\00\00L&\03\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\04\00\00\0f\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\04\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00D \02\00\00\00\00\00\00\00\00\00\00\00\00\00D$\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $runtime/flags/VALUE_ALIGN_REF i32 (i32.const 32)) - (global $runtime/flags/KEY_ALIGN_REF i32 (i32.const 4096)) + (global $runtime/flags/VALUE_ALIGN_REF i32 (i32.const 64)) + (global $runtime/flags/KEY_ALIGN_REF i32 (i32.const 8192)) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) (global $~lib/allocator/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/allocator/tlsf/Root.SL_START i32 (i32.const 4)) @@ -44,7 +44,7 @@ (global $~lib/collector/itcm/white (mut i32) (i32.const 0)) (global $~lib/runtime/ROOT (mut i32) (i32.const 0)) (global $~lib/runtime/RTTI_BASE i32 (i32.const 176)) - (global $~lib/memory/HEAP_BASE i32 (i32.const 528)) + (global $~lib/memory/HEAP_BASE i32 (i32.const 656)) (global $~lib/capabilities i32 (i32.const 2)) (export "memory" (memory $0)) (export "$.instanceof" (func $~lib/runtime/runtime.instanceof)) @@ -445,157 +445,392 @@ unreachable end ) - (func $start:runtime/flags (; 26 ;) (type $FUNCSIG$v) + (func $runtime/flags/test (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 43 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 44 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 45 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 47 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 30 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 49 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 50 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 52 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 53 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 34 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 55 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 57 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $runtime/flags/test (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 58 + call $~lib/runtime/runtime.flags + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 24 + i32.const 5 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:runtime/flags (; 37 ;) (type $FUNCSIG$v) i32.const 1 i32.const 8 i32.or + i32.const 16 + i32.or call $runtime/flags/test<~lib/array/Array> i32.const 1 - i32.const 16 + i32.const 8 + i32.or + i32.const 32 i32.or call $runtime/flags/test<~lib/array/Array> i32.const 1 - i32.const 32 + i32.const 8 + i32.or + i32.const 64 i32.or call $runtime/flags/test<~lib/array/Array> i32.const 1 - i32.const 64 + i32.const 8 + i32.or + i32.const 128 i32.or call $runtime/flags/test<~lib/array/Array> i32.const 1 - i32.const 128 - i32.or - call $runtime/flags/test<~lib/array/Array> - i32.const 1 - global.get $runtime/flags/VALUE_ALIGN_REF - i32.or - i32.const 512 - i32.or - call $runtime/flags/test<~lib/array/Array> - i32.const 1 - global.get $runtime/flags/VALUE_ALIGN_REF + i32.const 8 i32.or i32.const 256 i32.or + call $runtime/flags/test<~lib/array/Array> + i32.const 1 + i32.const 8 + i32.or + global.get $runtime/flags/VALUE_ALIGN_REF + i32.or + i32.const 1024 + i32.or + call $runtime/flags/test<~lib/array/Array> + i32.const 1 + i32.const 8 + i32.or + global.get $runtime/flags/VALUE_ALIGN_REF + i32.or i32.const 512 i32.or + i32.const 1024 + i32.or call $runtime/flags/test<~lib/array/Array> i32.const 2 i32.const 8 i32.or + i32.const 16 + i32.or call $runtime/flags/test<~lib/set/Set> i32.const 2 - i32.const 16 + i32.const 8 + i32.or + i32.const 32 i32.or call $runtime/flags/test<~lib/set/Set> i32.const 2 - i32.const 32 + i32.const 8 + i32.or + i32.const 64 i32.or call $runtime/flags/test<~lib/set/Set> i32.const 2 - i32.const 64 + i32.const 8 + i32.or + i32.const 128 i32.or call $runtime/flags/test<~lib/set/Set> i32.const 2 - i32.const 128 - i32.or - call $runtime/flags/test<~lib/set/Set> - i32.const 2 - global.get $runtime/flags/VALUE_ALIGN_REF - i32.or - i32.const 512 - i32.or - call $runtime/flags/test<~lib/set/Set> - i32.const 2 - global.get $runtime/flags/VALUE_ALIGN_REF + i32.const 8 i32.or i32.const 256 i32.or + call $runtime/flags/test<~lib/set/Set> + i32.const 2 + i32.const 8 + i32.or + global.get $runtime/flags/VALUE_ALIGN_REF + i32.or + i32.const 1024 + i32.or + call $runtime/flags/test<~lib/set/Set> + i32.const 2 + i32.const 8 + i32.or + global.get $runtime/flags/VALUE_ALIGN_REF + i32.or i32.const 512 i32.or + i32.const 1024 + i32.or call $runtime/flags/test<~lib/set/Set> i32.const 4 - i32.const 16384 - i32.or i32.const 8 i32.or - call $runtime/flags/test<~lib/map/Map> - i32.const 4 - i32.const 8192 - i32.or - i32.const 16 - i32.or - call $runtime/flags/test<~lib/map/Map> - i32.const 4 - i32.const 4096 - i32.or - i32.const 32 - i32.or - call $runtime/flags/test<~lib/map/Map> - i32.const 4 - i32.const 2048 - i32.or - i32.const 64 - i32.or - call $runtime/flags/test<~lib/map/Map> - i32.const 4 - i32.const 1024 - i32.or - i32.const 128 - i32.or - call $runtime/flags/test<~lib/map/Map> - i32.const 4 - global.get $runtime/flags/KEY_ALIGN_REF - i32.or - i32.const 65536 - i32.or - i32.const 8 - i32.or - call $runtime/flags/test<~lib/map/Map> - i32.const 4 - global.get $runtime/flags/KEY_ALIGN_REF - i32.or i32.const 32768 i32.or + i32.const 16 + i32.or + call $runtime/flags/test<~lib/map/Map> + i32.const 4 + i32.const 8 + i32.or + i32.const 16384 + i32.or + i32.const 32 + i32.or + call $runtime/flags/test<~lib/map/Map> + i32.const 4 + i32.const 8 + i32.or + i32.const 8192 + i32.or + i32.const 64 + i32.or + call $runtime/flags/test<~lib/map/Map> + i32.const 4 + i32.const 8 + i32.or + i32.const 4096 + i32.or + i32.const 128 + i32.or + call $runtime/flags/test<~lib/map/Map> + i32.const 4 + i32.const 8 + i32.or + i32.const 2048 + i32.or + i32.const 256 + i32.or + call $runtime/flags/test<~lib/map/Map> + i32.const 4 + i32.const 8 + i32.or + global.get $runtime/flags/KEY_ALIGN_REF + i32.or + i32.const 131072 + i32.or + i32.const 16 + i32.or + call $runtime/flags/test<~lib/map/Map> + i32.const 4 + i32.const 8 + i32.or + global.get $runtime/flags/KEY_ALIGN_REF + i32.or i32.const 65536 i32.or - i32.const 8 + i32.const 131072 + i32.or + i32.const 16 i32.or call $runtime/flags/test<~lib/map/Map> i32.const 4 - i32.const 1024 + i32.const 8 i32.or - i32.const 512 + i32.const 2048 + i32.or + i32.const 1024 i32.or global.get $runtime/flags/VALUE_ALIGN_REF i32.or call $runtime/flags/test<~lib/map/Map> i32.const 4 - i32.const 1024 + i32.const 8 i32.or - i32.const 256 + i32.const 2048 i32.or i32.const 512 i32.or + i32.const 1024 + i32.or global.get $runtime/flags/VALUE_ALIGN_REF i32.or call $runtime/flags/test<~lib/map/Map> i32.const 4 - i32.const 32768 + i32.const 8 i32.or i32.const 65536 i32.or + i32.const 131072 + i32.or global.get $runtime/flags/KEY_ALIGN_REF i32.or - i32.const 256 - i32.or i32.const 512 i32.or + i32.const 1024 + i32.or global.get $runtime/flags/VALUE_ALIGN_REF i32.or call $runtime/flags/test<~lib/map/Map> + i32.const 8 + call $runtime/flags/test + i32.const 0 + call $runtime/flags/test + i32.const 0 + call $runtime/flags/test + i32.const 0 + call $runtime/flags/test + i32.const 8 + call $runtime/flags/test + i32.const 0 + call $runtime/flags/test + i32.const 8 + call $runtime/flags/test + i32.const 0 + call $runtime/flags/test + i32.const 0 + call $runtime/flags/test + i32.const 8 + call $runtime/flags/test + i32.const 8 + call $runtime/flags/test ) - (func $~lib/runtime/runtime.instanceof (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.instanceof (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -635,7 +870,7 @@ end i32.const 0 ) - (func $~lib/util/runtime/adjust (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/runtime/adjust (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 32 local.get $0 @@ -647,12 +882,12 @@ i32.sub i32.shl ) - (func $~lib/allocator/tlsf/Root#set:tailRef (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#set:tailRef (; 40 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) i32.const 0 local.get $1 i32.store offset=2912 ) - (func $~lib/allocator/tlsf/Root#setSLMap (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/allocator/tlsf/Root#setSLMap (; 41 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 global.get $~lib/allocator/tlsf/FL_BITS i32.lt_u @@ -673,7 +908,7 @@ local.get $2 i32.store offset=4 ) - (func $~lib/allocator/tlsf/Root#setHead (; 31 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/allocator/tlsf/Root#setHead (; 42 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) local.get $1 global.get $~lib/allocator/tlsf/FL_BITS i32.lt_u @@ -710,11 +945,11 @@ local.get $3 i32.store offset=96 ) - (func $~lib/allocator/tlsf/Root#get:tailRef (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Root#get:tailRef (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 0 i32.load offset=2912 ) - (func $~lib/allocator/tlsf/Block#get:right (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Block#get:right (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.load @@ -754,7 +989,7 @@ local.get $1 end ) - (func $~lib/allocator/tlsf/fls (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/fls (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -772,7 +1007,7 @@ i32.clz i32.sub ) - (func $~lib/allocator/tlsf/Root#getHead (; 35 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#getHead (; 46 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $1 global.get $~lib/allocator/tlsf/FL_BITS i32.lt_u @@ -808,7 +1043,7 @@ i32.add i32.load offset=96 ) - (func $~lib/allocator/tlsf/Root#getSLMap (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/allocator/tlsf/Root#getSLMap (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 global.get $~lib/allocator/tlsf/FL_BITS i32.lt_u @@ -828,7 +1063,7 @@ i32.add i32.load offset=4 ) - (func $~lib/allocator/tlsf/Root#remove (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#remove (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -973,7 +1208,7 @@ end end ) - (func $~lib/allocator/tlsf/Block#get:left (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/Block#get:left (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.load @@ -1005,7 +1240,7 @@ local.get $1 end ) - (func $~lib/allocator/tlsf/Root#setJump (; 39 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/allocator/tlsf/Root#setJump (; 50 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 i32.load global.get $~lib/allocator/tlsf/FREE @@ -1051,7 +1286,7 @@ local.get $1 i32.store ) - (func $~lib/allocator/tlsf/Root#insert (; 40 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/allocator/tlsf/Root#insert (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1317,7 +1552,7 @@ i32.or call $~lib/allocator/tlsf/Root#setSLMap ) - (func $~lib/allocator/tlsf/Root#addMemory (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#addMemory (; 52 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1470,7 +1705,7 @@ call $~lib/allocator/tlsf/Root#insert i32.const 1 ) - (func $~lib/allocator/tlsf/ffs (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/ffs (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -1486,7 +1721,7 @@ local.get $0 i32.ctz ) - (func $~lib/allocator/tlsf/ffs (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/ffs (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 0 i32.ne @@ -1502,7 +1737,7 @@ local.get $0 i32.ctz ) - (func $~lib/allocator/tlsf/Root#search (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/allocator/tlsf/Root#search (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1643,7 +1878,7 @@ end local.get $6 ) - (func $~lib/allocator/tlsf/Root#use (; 45 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/allocator/tlsf/Root#use (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1771,7 +2006,7 @@ global.get $~lib/allocator/tlsf/Block.INFO i32.add ) - (func $~lib/allocator/tlsf/__mem_allocate (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/allocator/tlsf/__mem_allocate (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2007,12 +2242,12 @@ local.get $0 call $~lib/allocator/tlsf/Root#use ) - (func $~lib/memory/memory.allocate (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/memory/memory.allocate (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 call $~lib/allocator/tlsf/__mem_allocate return ) - (func $~lib/util/runtime/allocate (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/runtime/allocate (; 59 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/util/runtime/adjust @@ -2034,7 +2269,7 @@ global.get $~lib/util/runtime/HEADER_SIZE i32.add ) - (func $~lib/collector/itcm/ManagedObjectList#clear (; 49 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObjectList#clear (; 60 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.store offset=8 @@ -2042,7 +2277,7 @@ local.get $0 i32.store offset=12 ) - (func $~lib/collector/itcm/maybeInit (; 50 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/maybeInit (; 61 ;) (type $FUNCSIG$v) global.get $~lib/collector/itcm/state i32.const 0 i32.eq @@ -2075,7 +2310,7 @@ global.set $~lib/collector/itcm/state end ) - (func $~lib/collector/itcm/ManagedObject#set:color (; 51 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObject#set:color (; 62 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $0 i32.load offset=8 @@ -2087,7 +2322,7 @@ i32.or i32.store offset=8 ) - (func $~lib/collector/itcm/ManagedObject#set:next (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObject#set:next (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 local.get $1 local.get $0 @@ -2097,7 +2332,7 @@ i32.or i32.store offset=8 ) - (func $~lib/collector/itcm/ManagedObjectList#push (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/ManagedObjectList#push (; 64 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 i32.load offset=12 @@ -2115,7 +2350,7 @@ local.get $1 i32.store offset=12 ) - (func $~lib/collector/itcm/__ref_register (; 54 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/__ref_register (; 65 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) call $~lib/collector/itcm/maybeInit @@ -2134,7 +2369,7 @@ local.get $2 call $~lib/collector/itcm/ManagedObjectList#push ) - (func $~lib/util/runtime/register (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/runtime/register (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 global.get $~lib/memory/HEAP_BASE @@ -2172,37 +2407,37 @@ call $~lib/collector/itcm/__ref_register local.get $0 ) - (func $~lib/runtime/runtime.newObject (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.newObject (; 67 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 call $~lib/util/runtime/allocate local.get $1 call $~lib/util/runtime/register ) - (func $~lib/runtime/runtime.newString (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.newString (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 1 i32.shl i32.const 17 call $~lib/runtime/runtime.newObject ) - (func $~lib/runtime/runtime.newArrayBuffer (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime.newArrayBuffer (; 69 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.const 16 call $~lib/runtime/runtime.newObject ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 59 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 70 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 global.get $~lib/util/runtime/HEADER_SIZE i32.sub i32.load offset=4 ) - (func $~lib/collector/itcm/ManagedObject#get:color (; 60 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/collector/itcm/ManagedObject#get:color (; 71 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 3 i32.and ) - (func $~lib/collector/itcm/ManagedObject#get:next (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/collector/itcm/ManagedObject#get:next (; 72 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=8 i32.const 3 @@ -2210,7 +2445,7 @@ i32.xor i32.and ) - (func $~lib/collector/itcm/ManagedObject#unlink (; 62 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#unlink (; 73 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2226,7 +2461,7 @@ local.get $1 call $~lib/collector/itcm/ManagedObject#set:next ) - (func $~lib/collector/itcm/ManagedObject#makeGray (; 63 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/ManagedObject#makeGray (; 74 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 global.get $~lib/collector/itcm/iter i32.eq @@ -2251,7 +2486,7 @@ i32.or i32.store offset=8 ) - (func $~lib/collector/itcm/__ref_link (; 64 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/collector/itcm/__ref_link (; 75 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) call $~lib/collector/itcm/maybeInit @@ -2288,7 +2523,7 @@ call $~lib/collector/itcm/ManagedObject#makeGray end ) - (func $~lib/runtime/runtime.newArray (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/runtime/runtime.newArray (; 76 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2300,7 +2535,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -2351,7 +2586,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 @@ -2388,27 +2623,27 @@ end local.get $5 ) - (func $~lib/runtime/Root#constructor (; 66 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/Root#constructor (; 77 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.eqz if i32.const 0 call $~lib/util/runtime/allocate - i32.const 43 + i32.const 59 call $~lib/util/runtime/register local.set $0 end local.get $0 ) - (func $~lib/runtime/runtime.retain (; 67 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/runtime.retain (; 78 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 global.get $~lib/runtime/ROOT call $~lib/collector/itcm/__ref_link ) - (func $~lib/runtime/runtime.release (; 68 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/runtime/runtime.release (; 79 ;) (type $FUNCSIG$vi) (param $0 i32) nop ) - (func $~lib/allocator/tlsf/__mem_free (; 69 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/allocator/tlsf/__mem_free (; 80 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2451,11 +2686,11 @@ end end ) - (func $~lib/memory/memory.free (; 70 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/memory/memory.free (; 81 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 call $~lib/allocator/tlsf/__mem_free ) - (func $~lib/collector/itcm/step (; 71 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/step (; 82 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) block $break|0 @@ -2577,7 +2812,7 @@ unreachable end ) - (func $~lib/collector/itcm/__ref_collect (; 72 ;) (type $FUNCSIG$v) + (func $~lib/collector/itcm/__ref_collect (; 83 ;) (type $FUNCSIG$v) call $~lib/collector/itcm/maybeInit block $break|0 loop $continue|0 @@ -2600,19 +2835,19 @@ end end ) - (func $~lib/runtime/runtime.collect (; 73 ;) (type $FUNCSIG$v) + (func $~lib/runtime/runtime.collect (; 84 ;) (type $FUNCSIG$v) call $~lib/collector/itcm/__ref_collect ) - (func $~lib/runtime/runtime#constructor (; 74 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/runtime/runtime#constructor (; 85 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) unreachable ) - (func $start (; 75 ;) (type $FUNCSIG$v) + (func $start (; 86 ;) (type $FUNCSIG$v) call $start:runtime/flags i32.const 0 call $~lib/runtime/Root#constructor global.set $~lib/runtime/ROOT ) - (func $~lib/collector/itcm/__ref_mark (; 76 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/collector/itcm/__ref_mark (; 87 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) call $~lib/collector/itcm/maybeInit @@ -2633,7 +2868,7 @@ call $~lib/collector/itcm/ManagedObject#makeGray end ) - (func $~lib/runtime/__gc_mark_roots (; 77 ;) (type $FUNCSIG$v) + (func $~lib/runtime/__gc_mark_roots (; 88 ;) (type $FUNCSIG$v) (local $0 i32) global.get $~lib/runtime/ROOT local.tee $0 @@ -2642,32 +2877,32 @@ call $~lib/collector/itcm/__ref_mark end ) - (func $~lib/array/Array#__traverse (; 78 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#__traverse (; 89 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load call $~lib/collector/itcm/__ref_mark ) - (func $~lib/array/Array#__traverse (; 79 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#__traverse (; 90 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load call $~lib/collector/itcm/__ref_mark ) - (func $~lib/array/Array#__traverse (; 80 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#__traverse (; 91 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load call $~lib/collector/itcm/__ref_mark ) - (func $~lib/array/Array#__traverse (; 81 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#__traverse (; 92 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load call $~lib/collector/itcm/__ref_mark ) - (func $~lib/array/Array#__traverse (; 82 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#__traverse (; 93 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 i32.load call $~lib/collector/itcm/__ref_mark ) - (func $~lib/array/Array#__traverse (; 83 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#__traverse (; 94 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2707,7 +2942,7 @@ end end ) - (func $~lib/array/Array#__traverse (; 84 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#__traverse (; 95 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2750,7 +2985,7 @@ end end ) - (func $~lib/set/Set#__traverse (; 85 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#__traverse (; 96 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2761,7 +2996,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/set/Set#__traverse (; 86 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#__traverse (; 97 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2772,7 +3007,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/set/Set#__traverse (; 87 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#__traverse (; 98 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2783,7 +3018,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/set/Set#__traverse (; 88 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#__traverse (; 99 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2794,7 +3029,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/set/Set#__traverse (; 89 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#__traverse (; 100 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2805,7 +3040,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/set/Set#__traverse (; 90 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#__traverse (; 101 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2866,7 +3101,7 @@ end end ) - (func $~lib/set/Set#__traverse (; 91 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/set/Set#__traverse (; 102 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2930,7 +3165,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 92 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 103 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2941,7 +3176,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/map/Map#__traverse (; 93 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 104 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2952,7 +3187,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/map/Map#__traverse (; 94 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 105 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2963,7 +3198,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/map/Map#__traverse (; 95 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 106 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2974,7 +3209,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/map/Map#__traverse (; 96 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 107 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load @@ -2985,7 +3220,7 @@ local.get $1 call $~lib/collector/itcm/__ref_mark ) - (func $~lib/map/Map#__traverse (; 97 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 108 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3046,7 +3281,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 98 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 109 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3110,7 +3345,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 99 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 110 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3171,7 +3406,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 100 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 111 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3235,7 +3470,7 @@ end end ) - (func $~lib/map/Map#__traverse (; 101 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/map/Map#__traverse (; 112 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3310,201 +3545,590 @@ end end ) - (func $~lib/runtime/__gc_mark_members (; 102 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__traverse (; 113 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=4 + local.set $1 + local.get $1 + local.get $0 + i32.load offset=8 + i32.add + local.set $2 + block $break|0 + loop $continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + block + local.get $1 + i32.load + local.set $3 + local.get $3 + call $~lib/collector/itcm/__ref_mark + i32.const 47 + local.get $3 + call $~lib/runtime/__gc_mark_members + local.get $1 + i32.const 4 + i32.add + local.set $1 + end + br $continue|0 + end + end + end + ) + (func $~lib/set/Set#__traverse (; 114 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=8 + local.set $1 + local.get $1 + call $~lib/collector/itcm/__ref_mark + local.get $1 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=16 + block $~lib/set/ENTRY_SIZE|inlined.0 (result i32) + i32.const 8 + end + i32.mul + i32.add + local.set $3 + block $break|0 + loop $continue|0 + local.get $2 + local.get $3 + i32.lt_u + if + block + local.get $2 + local.set $4 + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $4 + i32.load + local.set $5 + local.get $5 + call $~lib/collector/itcm/__ref_mark + i32.const 50 + local.get $5 + call $~lib/runtime/__gc_mark_members + end + local.get $2 + block $~lib/set/ENTRY_SIZE|inlined.1 (result i32) + i32.const 8 + end + i32.add + local.set $2 + end + br $continue|0 + end + end + end + ) + (func $~lib/map/Map#__traverse (; 115 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=8 + local.set $1 + local.get $1 + call $~lib/collector/itcm/__ref_mark + local.get $1 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + end + i32.mul + i32.add + local.set $3 + block $break|0 + loop $continue|0 + local.get $2 + local.get $3 + i32.lt_u + if + block + local.get $2 + local.set $4 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $4 + i32.load + local.set $5 + local.get $5 + call $~lib/collector/itcm/__ref_mark + i32.const 53 + local.get $5 + call $~lib/runtime/__gc_mark_members + end + local.get $2 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.add + local.set $2 + end + br $continue|0 + end + end + end + ) + (func $~lib/map/Map#__traverse (; 116 ;) (type $FUNCSIG$vi) (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.load + call $~lib/collector/itcm/__ref_mark + local.get $0 + i32.load offset=8 + local.set $1 + local.get $1 + call $~lib/collector/itcm/__ref_mark + local.get $1 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=16 + block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + i32.const 12 + end + i32.mul + i32.add + local.set $3 + block $break|0 + loop $continue|0 + local.get $2 + local.get $3 + i32.lt_u + if + block + local.get $2 + local.set $4 + local.get $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $4 + i32.load offset=4 + local.set $5 + local.get $5 + call $~lib/collector/itcm/__ref_mark + i32.const 55 + local.get $5 + call $~lib/runtime/__gc_mark_members + end + local.get $2 + block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + i32.const 12 + end + i32.add + local.set $2 + end + br $continue|0 + end + end + end + ) + (func $~lib/runtime/__gc_mark_members (; 117 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $invalid block $~lib/runtime/Root - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/set/Set - block $~lib/array/Array - block $~lib/array/Array - block $runtime/flags/Ref - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/arraybuffer/ArrayBufferView - block $~lib/vector/V128 - block $~lib/number/F64 - block $~lib/number/F32 - block $~lib/number/Bool - block $~lib/number/Usize - block $~lib/number/U64 - block $~lib/number/U32 - block $~lib/number/U16 - block $~lib/number/U8 - block $~lib/number/Isize - block $~lib/number/I64 - block $~lib/number/I32 - block $~lib/number/I16 - block $~lib/number/I8 - local.get $0 - br_table $invalid $~lib/number/I8 $~lib/number/I16 $~lib/number/I32 $~lib/number/I64 $~lib/number/Isize $~lib/number/U8 $~lib/number/U16 $~lib/number/U32 $~lib/number/U64 $~lib/number/Usize $~lib/number/Bool $~lib/number/F32 $~lib/number/F64 $~lib/vector/V128 $~lib/arraybuffer/ArrayBufferView $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $runtime/flags/Ref $~lib/array/Array $~lib/array/Array $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/runtime/Root $invalid + block $runtime/flags/InnerCycleMapValue + block $runtime/flags/InnerCycleMapKey + block $~lib/map/Map + block $runtime/flags/IndirectCycleMapValue + block $~lib/map/Map + block $runtime/flags/IndirectCycleMapKey + block $runtime/flags/InnerCycleSet + block $~lib/set/Set + block $runtime/flags/IndirectCycleSet + block $runtime/flags/InnerCycleArray + block $~lib/array/Array + block $runtime/flags/IndirectCycleArray + block $runtime/flags/IndirectCycleBack + block $runtime/flags/IndirectCycle + block $runtime/flags/DirectCycle + block $runtime/flags/NoCycle + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/map/Map + block $~lib/set/Set + block $~lib/set/Set + block $~lib/set/Set + block $~lib/set/Set + block $~lib/set/Set + block $~lib/set/Set + block $~lib/set/Set + block $~lib/array/Array + block $~lib/array/Array + block $runtime/flags/Ref + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/arraybuffer/ArrayBufferView + block $~lib/vector/V128 + block $~lib/number/F64 + block $~lib/number/F32 + block $~lib/number/Bool + block $~lib/number/Usize + block $~lib/number/U64 + block $~lib/number/U32 + block $~lib/number/U16 + block $~lib/number/U8 + block $~lib/number/Isize + block $~lib/number/I64 + block $~lib/number/I32 + block $~lib/number/I16 + block $~lib/number/I8 + local.get $0 + br_table $invalid $~lib/number/I8 $~lib/number/I16 $~lib/number/I32 $~lib/number/I64 $~lib/number/Isize $~lib/number/U8 $~lib/number/U16 $~lib/number/U32 $~lib/number/U64 $~lib/number/Usize $~lib/number/Bool $~lib/number/F32 $~lib/number/F64 $~lib/vector/V128 $~lib/arraybuffer/ArrayBufferView $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $runtime/flags/Ref $~lib/array/Array $~lib/array/Array $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/set/Set $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/map/Map $runtime/flags/NoCycle $runtime/flags/DirectCycle $runtime/flags/IndirectCycle $runtime/flags/IndirectCycleBack $runtime/flags/IndirectCycleArray $~lib/array/Array $runtime/flags/InnerCycleArray $runtime/flags/IndirectCycleSet $~lib/set/Set $runtime/flags/InnerCycleSet $runtime/flags/IndirectCycleMapKey $~lib/map/Map $runtime/flags/IndirectCycleMapValue $~lib/map/Map $runtime/flags/InnerCycleMapKey $runtime/flags/InnerCycleMapValue $~lib/runtime/Root $invalid + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + local.get $1 + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 16 + local.get $2 + call $~lib/runtime/__gc_mark_members + end + return + end + return end return end + local.get $1 + call $~lib/array/Array#__traverse return end + local.get $1 + call $~lib/array/Array#__traverse return end + local.get $1 + call $~lib/array/Array#__traverse return end + local.get $1 + call $~lib/array/Array#__traverse return end + local.get $1 + call $~lib/array/Array#__traverse return end return end + local.get $1 + call $~lib/array/Array#__traverse return end + local.get $1 + call $~lib/array/Array#__traverse return end + local.get $1 + call $~lib/set/Set#__traverse return end + local.get $1 + call $~lib/set/Set#__traverse return end + local.get $1 + call $~lib/set/Set#__traverse return end + local.get $1 + call $~lib/set/Set#__traverse return end + local.get $1 + call $~lib/set/Set#__traverse return end local.get $1 - i32.load - local.tee $2 - if - local.get $2 - call $~lib/collector/itcm/__ref_mark - i32.const 16 - local.get $2 - call $~lib/runtime/__gc_mark_members - end + call $~lib/set/Set#__traverse return end + local.get $1 + call $~lib/set/Set#__traverse return end + local.get $1 + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/array/Array#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/array/Array#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/array/Array#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/array/Array#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/array/Array#__traverse + call $~lib/map/Map#__traverse return end + local.get $1 + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/array/Array#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/array/Array#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/set/Set#__traverse + call $~lib/map/Map#__traverse return end - local.get $1 - call $~lib/set/Set#__traverse return end local.get $1 - call $~lib/set/Set#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 44 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/set/Set#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 46 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/set/Set#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 45 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/set/Set#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 48 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/set/Set#__traverse + call $~lib/array/Array#__traverse return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 47 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 51 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/map/Map#__traverse + call $~lib/set/Set#__traverse return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 50 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 54 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/map/Map#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 56 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/map/Map#__traverse + call $~lib/map/Map#__traverse return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 53 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end local.get $1 - call $~lib/map/Map#__traverse + i32.load + local.tee $2 + if + local.get $2 + call $~lib/collector/itcm/__ref_mark + i32.const 55 + local.get $2 + call $~lib/runtime/__gc_mark_members + end return end return end unreachable ) - (func $null (; 103 ;) (type $FUNCSIG$v) + (func $null (; 118 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/runtime/instanceof.optimized.wat b/tests/compiler/runtime/instanceof.optimized.wat index 04530e36..e88a955f 100644 --- a/tests/compiler/runtime/instanceof.optimized.wat +++ b/tests/compiler/runtime/instanceof.optimized.wat @@ -22,8 +22,7 @@ (data (i32.const 216) "g\00c\00.\00u\00n\00l\00i\00n\00k") (data (i32.const 240) "\10\00\00\00\14") (data (i32.const 256) "g\00c\00.\00c\00o\00l\00l\00e\00c\00t") - (data (i32.const 280) "\15") - (data (i32.const 428) "\11\00\00\00\00\00\00\00\12\00\00\00!\00\00\00\0e") + (data (i32.const 280) "\15\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\11\00\00\00\08\00\00\00\12\00\00\00I\00\00\00\0e\00\00\00\08") (global $gc/_dummy/collect_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_count (mut i32) (i32.const 0)) (global $gc/_dummy/register_ref (mut i32) (i32.const 0)) @@ -783,7 +782,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -837,7 +836,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/runtime/instanceof.untouched.wat b/tests/compiler/runtime/instanceof.untouched.wat index 9d88ccdb..48a2618c 100644 --- a/tests/compiler/runtime/instanceof.untouched.wat +++ b/tests/compiler/runtime/instanceof.untouched.wat @@ -15,7 +15,7 @@ (data (i32.const 168) "\10\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00l\00i\00n\00k\00") (data (i32.const 200) "\10\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00u\00n\00l\00i\00n\00k\00") (data (i32.const 240) "\10\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00c\00o\00l\00l\00e\00c\00t\00") - (data (i32.const 280) "\15\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\11\00\00\00\00\00\00\00\12\00\00\00!\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 280) "\15\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\11\00\00\00\08\00\00\00\12\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $gc/_dummy/collect_count (mut i32) (i32.const 0)) @@ -929,7 +929,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -985,7 +985,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index c9c8deed..4f6ce901 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -24,10 +24,7 @@ (data (i32.const 264) "\f8\00\00\00\f8") (data (i32.const 280) "\10\00\00\00(") (data (i32.const 296) "~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 336) "\17") - (data (i32.const 472) "\t\00\00\00\0e\00\00\00!\00\00\00\0e") - (data (i32.const 496) "!\02\00\00\0e") - (data (i32.const 512) "!\02\00\00\0e") + (data (i32.const 336) "\17\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0e\00\00\00\08") (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 264)) (global $std/array-literal/i (mut i32) (i32.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -693,7 +690,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -732,7 +729,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index f5016a26..dff312f1 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -18,7 +18,7 @@ (data (i32.const 232) "\0f\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 248) "\12\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\f8\00\00\00\f8\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 280) "\10\00\00\00(\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 336) "\17\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\t\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00!\02\00\00\0e\00\00\00\00\00\00\00\00\00\00\00!\02\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 336) "\17\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/array-literal/staticArrayI8 i32 (i32.const 48)) @@ -1125,7 +1125,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -1181,7 +1181,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 9b175a72..56cfc20e 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -402,11 +402,7 @@ (data (i32.const 8040) "\01") (data (i32.const 8048) "\0f\00\00\00\04") (data (i32.const 8064) "\01") - (data (i32.const 8072) "(") - (data (i32.const 8208) "!\00\00\00\0e") - (data (i32.const 8228) "\0e\00\00\00\t\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00!\02\00\00\0e") - (data (i32.const 8280) "!\02\00\00\0e\00\00\00!\03\00\00\0e\00\00\00!\02\00\00\0e\00\00\00\t\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00\11\00\00\00\0e") - (data (i32.const 8336) "!\03\00\00\0e\00\00\00\t\00\00\00\0e\00\00\00\11\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00!\02\00\00\0e\00\00\00!\02\00\00\0e\00\00\00!\02\00\00\0e") + (data (i32.const 8072) "(\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\0e\00\00\00\19\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00I\04\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0e\00\00\00I\06\00\00\0e\00\00\00I\04\00\00\0e\00\00\00\19\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00)\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\06\00\00\0e\00\00\00\19\00\00\00\0e\00\00\00)\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00I\04\00\00\0e\00\00\00I\04\00\00\0e\00\00\00I\04\00\00\0e\00\00\00\08") (table $0 57 funcref) (elem (i32.const 0) $~lib/runtime/runtime.collect $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|16 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -13604,7 +13600,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -13643,7 +13639,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index e8e76bc2..ae1fc912 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -221,7 +221,7 @@ (data (i32.const 8000) "\0f\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00") (data (i32.const 8024) "\0f\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00") (data (i32.const 8048) "\0f\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00") - (data (i32.const 8072) "(\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\t\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00!\02\00\00\0e\00\00\00\00\00\00\00\00\00\00\00!\02\00\00\0e\00\00\00!\03\00\00\0e\00\00\00!\02\00\00\0e\00\00\00\t\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00\11\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00!\03\00\00\0e\00\00\00\t\00\00\00\0e\00\00\00\11\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00!\02\00\00\0e\00\00\00!\02\00\00\0e\00\00\00!\02\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8072) "(\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\0e\00\00\00\19\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00I\04\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0e\00\00\00I\06\00\00\0e\00\00\00I\04\00\00\0e\00\00\00\19\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00)\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\06\00\00\0e\00\00\00\19\00\00\00\0e\00\00\00)\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00I\04\00\00\0e\00\00\00I\04\00\00\0e\00\00\00I\04\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 57 funcref) (elem (i32.const 0) $null $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) @@ -18137,7 +18137,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -18193,7 +18193,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 2f794dd4..8cbef925 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -16,8 +16,7 @@ (data (i32.const 152) "\0f\00\00\00\08\00\00\00\01\00\00\00\02") (data (i32.const 168) "\10\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") (data (i32.const 208) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 248) "\1d") - (data (i32.const 384) "!\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e") + (data (i32.const 248) "\1d\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08") (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/arraybuffer/buffer (mut i32) (i32.const 0)) @@ -1133,7 +1132,7 @@ i32.load end local.tee $3 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -1169,7 +1168,7 @@ i32.shr_u i32.store offset=12 local.get $3 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index 825e15de..13bec104 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -15,7 +15,7 @@ (data (i32.const 152) "\0f\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") (data (i32.const 168) "\10\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") (data (i32.const 208) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 248) "\1d\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 248) "\1d\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) @@ -1964,7 +1964,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -2000,7 +2000,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 7d084c70..0f26e35f 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -21,9 +21,7 @@ (data (i32.const 152) "\10\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") (data (i32.const 192) "\10\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s") (data (i32.const 232) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 272) "\13") - (data (i32.const 412) "\0e") - (data (i32.const 424) "!\00\00\00\0e") + (data (i32.const 272) "\13\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e") (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/dataview/array (mut i32) (i32.const 0)) @@ -2643,7 +2641,7 @@ i32.load end local.tee $3 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -2679,7 +2677,7 @@ i32.shr_u i32.store offset=12 local.get $3 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index cdb5839d..4bba76e9 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -22,7 +22,7 @@ (data (i32.const 152) "\10\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") (data (i32.const 192) "\10\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") (data (i32.const 232) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 272) "\13\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00") + (data (i32.const 272) "\13\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) @@ -3294,7 +3294,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -3330,7 +3330,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 961665f0..e1d30654 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -13,8 +13,7 @@ (data (i32.const 8) "\10\00\00\00\16\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s") (data (i32.const 40) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (data (i32.const 88) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 128) "\12") - (data (i32.const 272) "!\00\00\00\0e") + (data (i32.const 128) "\12\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e") (global $std/date/creationTime (mut i64) (i64.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) @@ -374,7 +373,7 @@ i32.load end local.tee $3 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -410,7 +409,7 @@ i32.shr_u i32.store offset=12 local.get $3 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/date.untouched.wat b/tests/compiler/std/date.untouched.wat index 66285d60..014f2e6d 100644 --- a/tests/compiler/std/date.untouched.wat +++ b/tests/compiler/std/date.untouched.wat @@ -16,7 +16,7 @@ (data (i32.const 8) "\10\00\00\00\16\00\00\00s\00t\00d\00/\00d\00a\00t\00e\00.\00t\00s\00") (data (i32.const 40) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 88) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 128) "\12\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00") + (data (i32.const 128) "\12\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/date/creationTime (mut i64) (i64.const 0)) @@ -505,7 +505,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -541,7 +541,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index ec344312..9c7435c8 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -29,8 +29,7 @@ (data (i32.const 80) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (data (i32.const 120) "\10\00\00\00\14") (data (i32.const 136) "s\00t\00d\00/\00m\00a\00p\00.\00t\00s") - (data (i32.const 160) "\1c") - (data (i32.const 296) "$\04\00\00\00\00\00\00$\04\00\00\00\00\00\00$\08\00\00\00\00\00\00$\08\00\00\00\00\00\00$\10\00\00\00\00\00\00$\10\00\00\00\00\00\00$ \00\00\00\00\00\00$ \00\00\00\00\00\00$\10\00\00\00\00\00\00$ \00\00\00\00\00\00!\00\00\00\0e") + (data (i32.const 160) "\1c\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00L\08\00\00\00\00\00\00L\08\00\00\00\00\00\00L\10\00\00\00\00\00\00L\10\00\00\00\00\00\00L \00\00\00\00\00\00L \00\00\00\00\00\00L@\00\00\00\00\00\00L@\00\00\00\00\00\00L \00\00\00\00\00\00L@\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08") (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/runtime/ROOT (mut i32) (i32.const 0)) @@ -6947,7 +6946,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -6986,7 +6985,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index f030a8a1..3de09404 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -22,7 +22,7 @@ (data (i32.const 8) "\10\00\00\00(\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 64) "\10\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 120) "\10\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00") - (data (i32.const 160) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$\04\00\00\00\00\00\00$\04\00\00\00\00\00\00$\08\00\00\00\00\00\00$\08\00\00\00\00\00\00$\10\00\00\00\00\00\00$\10\00\00\00\00\00\00$ \00\00\00\00\00\00$ \00\00\00\00\00\00$\10\00\00\00\00\00\00$ \00\00\00\00\00\00!\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 160) "\1c\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00L\08\00\00\00\00\00\00L\08\00\00\00\00\00\00L\10\00\00\00\00\00\00L\10\00\00\00\00\00\00L \00\00\00\00\00\00L \00\00\00\00\00\00L@\00\00\00\00\00\00L@\00\00\00\00\00\00L \00\00\00\00\00\00L@\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) @@ -9991,7 +9991,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -10047,7 +10047,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 0de0adc6..20faac87 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -9,8 +9,7 @@ (memory $0 1) (data (i32.const 8) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (data (i32.const 56) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 96) "\12") - (data (i32.const 240) "!\00\00\00\0e") + (data (i32.const 96) "\12\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e") (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/new/aClass (mut i32) (i32.const 0)) @@ -268,7 +267,7 @@ i32.load end local.tee $3 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -304,7 +303,7 @@ i32.shr_u i32.store offset=12 local.get $3 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/new.untouched.wat b/tests/compiler/std/new.untouched.wat index caddfb43..8bfae607 100644 --- a/tests/compiler/std/new.untouched.wat +++ b/tests/compiler/std/new.untouched.wat @@ -9,7 +9,7 @@ (memory $0 1) (data (i32.const 8) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 56) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 96) "\12\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00") + (data (i32.const 96) "\12\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/new/AClass.aStaticField (mut i32) (i32.const 0)) @@ -328,7 +328,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -364,7 +364,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/object-literal.optimized.wat b/tests/compiler/std/object-literal.optimized.wat index c6f62370..2deba474 100644 --- a/tests/compiler/std/object-literal.optimized.wat +++ b/tests/compiler/std/object-literal.optimized.wat @@ -12,8 +12,7 @@ (data (i32.const 64) "~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (data (i32.const 104) "\10\00\00\00*") (data (i32.const 120) "s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s") - (data (i32.const 168) "\14") - (data (i32.const 320) "!\00\00\00\0e") + (data (i32.const 168) "\14\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08") (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/runtime/ROOT (mut i32) (i32.const 0)) @@ -419,7 +418,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -458,7 +457,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/object-literal.untouched.wat b/tests/compiler/std/object-literal.untouched.wat index 3d19a2f8..6e247ac8 100644 --- a/tests/compiler/std/object-literal.untouched.wat +++ b/tests/compiler/std/object-literal.untouched.wat @@ -11,7 +11,7 @@ (data (i32.const 8) "\10\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00h\00e\00l\00l\00o\00 \00w\00o\00r\00l\00d\00") (data (i32.const 48) "\10\00\00\00(\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 104) "\10\00\00\00*\00\00\00\00\00\00\00\00\00\00\00s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00") - (data (i32.const 168) "\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 168) "\14\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) @@ -520,7 +520,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -576,7 +576,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index f201dad0..8c4e9add 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -11,8 +11,7 @@ (data (i32.const 8) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (data (i32.const 56) "\10\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s") (data (i32.const 120) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 160) "\14") - (data (i32.const 320) "!\00\00\00\0e") + (data (i32.const 160) "\14\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e") (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $std/operator-overloading/a1 (mut i32) (i32.const 0)) @@ -2641,7 +2640,7 @@ i32.load end local.tee $3 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -2677,7 +2676,7 @@ i32.shr_u i32.store offset=12 local.get $3 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/operator-overloading.untouched.wat b/tests/compiler/std/operator-overloading.untouched.wat index 5d40c403..659b248b 100644 --- a/tests/compiler/std/operator-overloading.untouched.wat +++ b/tests/compiler/std/operator-overloading.untouched.wat @@ -12,7 +12,7 @@ (data (i32.const 8) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 56) "\10\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00") (data (i32.const 120) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 160) "\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00") + (data (i32.const 160) "\14\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8)) @@ -3021,7 +3021,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -3057,7 +3057,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 5a11eaa3..70fbc993 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -25,8 +25,7 @@ (data (i32.const 80) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") (data (i32.const 120) "\10\00\00\00\14") (data (i32.const 136) "s\00t\00d\00/\00s\00e\00t\00.\00t\00s") - (data (i32.const 160) "\1c") - (data (i32.const 296) "\n\00\00\00\00\00\00\00\n\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\"\00\00\00\00\00\00\00\"\00\00\00\00\00\00\00B\00\00\00\00\00\00\00B\00\00\00\00\00\00\00\"\00\00\00\00\00\00\00B\00\00\00\00\00\00\00!\00\00\00\0e") + (data (i32.const 160) "\1c\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\1a\00\00\00\00\00\00\00\1a\00\00\00\00\00\00\00*\00\00\00\00\00\00\00*\00\00\00\00\00\00\00J\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08") (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (global $~lib/runtime/ROOT (mut i32) (i32.const 0)) @@ -5877,7 +5876,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -5916,7 +5915,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index e55446ba..3f0f3223 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -22,7 +22,7 @@ (data (i32.const 8) "\10\00\00\00(\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 64) "\10\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") (data (i32.const 120) "\10\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00") - (data (i32.const 160) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\n\00\00\00\00\00\00\00\n\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\12\00\00\00\00\00\00\00\"\00\00\00\00\00\00\00\"\00\00\00\00\00\00\00B\00\00\00\00\00\00\00B\00\00\00\00\00\00\00\"\00\00\00\00\00\00\00B\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 160) "\1c\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\1a\00\00\00\00\00\00\00\1a\00\00\00\00\00\00\00*\00\00\00\00\00\00\00*\00\00\00\00\00\00\00J\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16)) @@ -8815,7 +8815,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -8871,7 +8871,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index a1513dfc..f1b20bca 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -24,8 +24,7 @@ (data (i32.const 232) "\10\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data (i32.const 272) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") (data (i32.const 320) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 360) "\14") - (data (i32.const 496) "!\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00A\00\00\00\0e") + (data (i32.const 360) "\14\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\89\00\00\00\0e") (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) (export "memory" (memory $0)) @@ -1168,7 +1167,7 @@ i32.load end local.tee $3 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -1204,7 +1203,7 @@ i32.shr_u i32.store offset=12 local.get $3 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index ddb6f499..0e8e4493 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -25,7 +25,7 @@ (data (i32.const 232) "\10\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") (data (i32.const 272) "\10\00\00\00(\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") (data (i32.const 320) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 360) "\14\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00") + (data (i32.const 360) "\14\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/static-array/i i32 (i32.const 32)) @@ -1443,7 +1443,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -1479,7 +1479,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/string-utf8.optimized.wat b/tests/compiler/std/string-utf8.optimized.wat index 58380a57..81016f5c 100644 --- a/tests/compiler/std/string-utf8.optimized.wat +++ b/tests/compiler/std/string-utf8.optimized.wat @@ -18,8 +18,7 @@ (data (i32.const 208) "\10\00\00\00\04\00\00\00R\d8b\df") (data (i32.const 224) "\10\00\00\00\02") (data (i32.const 240) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 280) "\11") - (data (i32.const 416) "!\00\00\00\0e") + (data (i32.const 280) "\11\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e") (global $std/string-utf8/str (mut i32) (i32.const 16)) (global $std/string-utf8/len (mut i32) (i32.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -1318,7 +1317,7 @@ i32.load end local.tee $3 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -1354,7 +1353,7 @@ i32.shr_u i32.store offset=12 local.get $3 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/string-utf8.untouched.wat b/tests/compiler/std/string-utf8.untouched.wat index ae0f54c0..fa51b677 100644 --- a/tests/compiler/std/string-utf8.untouched.wat +++ b/tests/compiler/std/string-utf8.untouched.wat @@ -18,7 +18,7 @@ (data (i32.const 208) "\10\00\00\00\04\00\00\00R\d8b\df") (data (i32.const 224) "\10\00\00\00\02\00\00\00\00\00") (data (i32.const 240) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 280) "\11\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\0e\00\00\00") + (data (i32.const 280) "\11\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\00\00\00\0e\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/string-utf8/str (mut i32) (i32.const 16)) @@ -1518,7 +1518,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -1554,7 +1554,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index e5cd260e..2e8891f2 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -325,8 +325,7 @@ (data (i32.const 6688) "1\00.\001\00e\00-\006\004") (data (i32.const 6704) "\10\00\00\00\16") (data (i32.const 6720) "0\00.\000\000\000\000\003\005\006\008\009") - (data (i32.const 6744) "\16") - (data (i32.const 6880) "!\02\00\00\0e\00\00\00!\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00\11\00\00\00\0e") + (data (i32.const 6744) "\16\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0e\00\00\00I\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00)\00\00\00\0e\00\00\00\08") (global $std/string/str (mut i32) (i32.const 24)) (global $std/string/nullStr (mut i32) (i32.const 0)) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -7851,7 +7850,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -7890,7 +7889,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 24baf97d..b83e2f13 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -175,7 +175,7 @@ (data (i32.const 6640) "\10\00\00\00\10\00\00\00\00\00\00\00\00\00\00\001\00.\001\00e\00+\001\002\008\00") (data (i32.const 6672) "\10\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\001\00.\001\00e\00-\006\004\00") (data (i32.const 6704) "\10\00\00\00\16\00\00\00\00\00\00\00\00\00\00\000\00.\000\000\000\000\003\005\006\008\009\00") - (data (i32.const 6744) "\16\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00!\02\00\00\0e\00\00\00!\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00A\00\00\00\0e\00\00\00\11\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6744) "\16\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00I\04\00\00\0e\00\00\00I\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\89\00\00\00\0e\00\00\00)\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/string/str (mut i32) (i32.const 24)) @@ -8971,7 +8971,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -9027,7 +9027,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 70b25c58..4e9c6871 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -34,8 +34,7 @@ (data (i32.const 600) "\10\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)") (data (i32.const 648) "\10\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)") (data (i32.const 712) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s") - (data (i32.const 752) "\13") - (data (i32.const 888) "$\10\00\00\00\00\00\00$\10\00\00\00\00\00\00!\00\00\00\0e") + (data (i32.const 752) "\13\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00L \00\00\00\00\00\00L \00\00\00\00\00\00I\00\00\00\0e") (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) (global $std/symbol/sym2 (mut i32) (i32.const 0)) @@ -1812,7 +1811,7 @@ i32.load end local.tee $3 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -1848,7 +1847,7 @@ i32.shr_u i32.store offset=12 local.get $3 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/symbol.untouched.wat b/tests/compiler/std/symbol.untouched.wat index 7e6d7bba..142ee744 100644 --- a/tests/compiler/std/symbol.untouched.wat +++ b/tests/compiler/std/symbol.untouched.wat @@ -34,7 +34,7 @@ (data (i32.const 600) "\10\00\00\00&\00\00\00S\00y\00m\00b\00o\00l\00(\00h\00a\00s\00I\00n\00s\00t\00a\00n\00c\00e\00)\00") (data (i32.const 648) "\10\00\00\004\00\00\00S\00y\00m\00b\00o\00l\00(\00i\00s\00C\00o\00n\00c\00a\00t\00S\00p\00r\00e\00a\00d\00a\00b\00l\00e\00)\00") (data (i32.const 712) "\10\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00") - (data (i32.const 752) "\13\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$\10\00\00\00\00\00\00$\10\00\00\00\00\00\00!\00\00\00\0e\00\00\00") + (data (i32.const 752) "\13\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00L \00\00\00\00\00\00L \00\00\00\00\00\00I\00\00\00\0e\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) @@ -2293,7 +2293,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -2329,7 +2329,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 0df220e7..f1b7349a 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -92,8 +92,7 @@ (data (i32.const 1272) "T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h") (data (i32.const 1344) "\10\00\00\00V") (data (i32.const 1360) "T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00w\00i\00t\00h\00 \00b\00y\00t\00e\00O\00f\00f\00s\00e\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h") - (data (i32.const 1448) "\1e") - (data (i32.const 1588) "\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\t\00\00\00\0e\00\00\00!\00\00\00\0e") + (data (i32.const 1448) "\1e\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\19\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\08") (table $0 112 funcref) (elem (i32.const 0) $~lib/runtime/runtime.collect $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) @@ -12860,7 +12859,7 @@ i32.load end local.tee $0 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -12899,7 +12898,7 @@ i32.shr_u i32.store offset=12 local.get $0 - i32.const 512 + i32.const 1024 i32.and if local.get $1 diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 8f97fe6f..b33577ef 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -67,7 +67,7 @@ (data (i32.const 1224) "\1d\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\a0\04\00\00\a0\04\00\00$\00\00\00\t\00\00\00") (data (i32.const 1256) "\10\00\00\00B\00\00\00\00\00\00\00\00\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00v\00a\00l\00u\00e\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") (data (i32.const 1344) "\10\00\00\00V\00\00\00\00\00\00\00\00\00\00\00T\00y\00p\00e\00d\00A\00r\00r\00a\00y\00 \00r\00e\00v\00e\00r\00s\00e\00 \00w\00i\00t\00h\00 \00b\00y\00t\00e\00O\00f\00f\00s\00e\00t\00 \00m\00i\00s\00m\00a\00t\00c\00h\00") - (data (i32.const 1448) "\1e\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\00\00\00\00\0e\00\00\00\t\00\00\00\0e\00\00\00!\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1448) "\1e\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\08\00\00\00\0e\00\00\00\19\00\00\00\0e\00\00\00I\00\00\00\0e\00\00\00\08\00\00\00\00\00\00\00") (table $0 112 funcref) (elem (i32.const 0) $null $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) @@ -18340,7 +18340,7 @@ call $~lib/runtime/runtime.flags local.set $2 local.get $2 - i32.const 8 + i32.const 16 i32.div_u i32.const 31 i32.and @@ -18396,7 +18396,7 @@ i32.shr_u i32.store offset=12 local.get $2 - i32.const 512 + i32.const 1024 i32.and if local.get $1