diff --git a/lib/loader/README.md b/lib/loader/README.md index c05025ae..83b06d24 100644 --- a/lib/loader/README.md +++ b/lib/loader/README.md @@ -28,7 +28,7 @@ API **Note** that `T` above can either be omitted if the structure of the module is unknown, or can reference a `.d.ts` (i.e. `typeof MyModule`) as produced by the compiler with the `-d` option. -Instances are automatically populated with useful utility: +Besides demangling classes exported from your entry file to a handy object structure one can use like JS objects, instances are automatically populated with useful utility: * **I8**: `Int8Array`
An 8-bit signed integer view on the memory. @@ -162,7 +162,7 @@ Instances are automatically populated with useful utility: **Note** that the allocation and ownership features above require the `full` (this is the default) or the `stub` runtime to be present in your module. Other runtime variations do not export this functionality without further ado (so the compiler can eliminate what's dead code). -**Note** that references returned from exported functions have already been retained for you and the runtime expects that you release them once not needed anymore. +**Note** that references returned from exported functions have already been retained for you and the runtime expects that you release them once not needed anymore. This is also true for constructors and getters. Examples -------- diff --git a/lib/loader/index.js b/lib/loader/index.js index 726d5d94..014d1f39 100644 --- a/lib/loader/index.js +++ b/lib/loader/index.js @@ -10,25 +10,28 @@ const STRING_ID = 1; const ARRAYBUFFERVIEW_ID = 2; // Runtime type information -const ARRAY = 1 << 0; -const SET = 1 << 1; -const MAP = 1 << 2; -const VAL_ALIGN = 1 << 4; -const VAL_SIGNED = 1 << 9; -const VAL_FLOAT = 1 << 10; -const VAL_NULLABLE = 1 << 11; -const VAL_MANAGED = 1 << 12; -const KEY_ALIGN = 1 << 13; -const KEY_SIGNED = 1 << 18; -const KEY_FLOAT = 1 << 19; -const KEY_NULLABLE = 1 << 20; -const KEY_MANAGED = 1 << 21; +const ARRAYBUFFERVIEW = 1 << 0; +const ARRAY = 1 << 1; +const SET = 1 << 2; +const MAP = 1 << 3; +const VAL_ALIGN = 1 << 5; +const VAL_SIGNED = 1 << 10; +const VAL_FLOAT = 1 << 11; +const VAL_NULLABLE = 1 << 12; +const VAL_MANAGED = 1 << 13; +const KEY_ALIGN = 1 << 14; +const KEY_SIGNED = 1 << 19; +const KEY_FLOAT = 1 << 20; +const KEY_NULLABLE = 1 << 21; +const KEY_MANAGED = 1 << 22; -// ArrayBufferView layout -const ABV_BUFFER_OFFSET = 0; -const ABV_DATASTART_OFFSET = 4; -const ABV_DATALENGTH_OFFSET = 8; -const ABV_SIZE = 12; +// Array(BufferView) layout +const ARRAYBUFFERVIEW_BUFFER_OFFSET = 0; +const ARRAYBUFFERVIEW_DATASTART_OFFSET = 4; +const ARRAYBUFFERVIEW_DATALENGTH_OFFSET = 8; +const ARRAYBUFFERVIEW_SIZE = 12; +const ARRAY_LENGTH_OFFSET = 12; +const ARRAY_SIZE = 16; const BIGINT = typeof BigUint64Array !== "undefined"; const THIS = Symbol(); @@ -169,15 +172,16 @@ function postInstantiate(baseModule, instance) { /** Allocates a new array in the module's memory and returns its retained pointer. */ function __allocArray(id, values) { const info = getInfo(id); - if (!(info & ARRAY)) throw Error("not an array: " + id + " @ " + info); + if (!(info & (ARRAYBUFFERVIEW | ARRAY))) throw Error("not an array: " + id + " @ " + info); const align = getAlign(VAL_ALIGN, info); const length = values.length; const buf = alloc(length << align, ARRAYBUFFER_ID); - const arr = alloc(ABV_SIZE, id); + const arr = alloc(ARRAYBUFFERVIEW_SIZE, id); checkMem(); - U32[arr + ABV_BUFFER_OFFSET >>> 2] = retain(buf); - U32[arr + ABV_DATASTART_OFFSET >>> 2] = buf; - U32[arr + ABV_DATALENGTH_OFFSET >>> 2] = length << align; + U32[arr + ARRAYBUFFERVIEW_BUFFER_OFFSET >>> 2] = retain(buf); + U32[arr + ARRAYBUFFERVIEW_DATASTART_OFFSET >>> 2] = buf; + U32[arr + ARRAYBUFFERVIEW_DATALENGTH_OFFSET >>> 2] = length << align; + if (info & ARRAY) U32[arr + ARRAY_LENGTH_OFFSET >>> 2] = length; const view = getView(align, info & VAL_SIGNED, info & VAL_FLOAT); for (let i = 0; i < length; ++i) view[(buf >> align) + i] = values[i]; if (info & VAL_MANAGED) for (let i = 0; i < length; ++i) retain(values[i]); @@ -191,10 +195,12 @@ function postInstantiate(baseModule, instance) { checkMem(); const id = U32[arr + ID_OFFSET >>> 2]; const info = getInfo(id); - if (!(info & ARRAY)) throw Error("not an array: " + id); + if (!(info & (ARRAYBUFFERVIEW | ARRAY))) throw Error("not an array: " + id); const align = getAlign(VAL_ALIGN, info); - var buf = U32[arr + ABV_DATASTART_OFFSET >>> 2]; - const length = U32[buf + SIZE_OFFSET >>> 2] >>> align; + var buf = U32[arr + ARRAYBUFFERVIEW_DATASTART_OFFSET >>> 2]; + const length = info & ARRAY + ? U32[arr + ARRAY_LENGTH_OFFSET >>> 2] + : U32[buf + SIZE_OFFSET >>> 2] >>> align; const view = getView(align, info & VAL_SIGNED, info & VAL_FLOAT); return Array.from(view.slice(buf >>>= align, buf + length)); } diff --git a/lib/loader/tests/assembly/index.ts b/lib/loader/tests/assembly/index.ts index 9e0471db..3b68e105 100644 --- a/lib/loader/tests/assembly/index.ts +++ b/lib/loader/tests/assembly/index.ts @@ -45,6 +45,10 @@ export function sum(arr: Int32Array): i32 { return v; } +export function changeLength(arr: Array, length: i32): void { + arr.length = length; +} + export function varadd(a: i32 = 1, b: i32 = 2): i32 { return a + b; } @@ -62,3 +66,4 @@ export function dotrace(num: f64): void { export const INT32ARRAY_ID = idof(); export const UINT32ARRAY_ID = idof(); export const FLOAT32ARRAY_ID = idof(); +export const ARRAYI32_ID = idof>(); diff --git a/lib/loader/tests/build/untouched.wasm b/lib/loader/tests/build/untouched.wasm index 090a2961..d799d459 100644 Binary files a/lib/loader/tests/build/untouched.wasm and b/lib/loader/tests/build/untouched.wasm differ diff --git a/lib/loader/tests/index.js b/lib/loader/tests/index.js index e542eeb7..30d86a7e 100644 --- a/lib/loader/tests/index.js +++ b/lib/loader/tests/index.js @@ -72,6 +72,17 @@ assert.strictEqual(module.__getString(module.COLOR), "red"); try { module.__release(ref); assert(false); } catch (e) {}; } +// should be able to work with normal arrays +{ + let arr = [1, 2, 3, 4, 5]; + let ref = module.__retain(module.__allocArray(module.ARRAYI32_ID, arr)); + assert(module.__instanceof(ref, module.ARRAYI32_ID)); + module.changeLength(ref, 3); + assert.deepEqual(module.__getArray(ref), [1, 2, 3]); + module.__release(ref); + try { module.__release(ref); assert(false); } catch (e) {}; +} + // should be able to correctly call a function with variable arguments assert.strictEqual(module.varadd(), 3); assert.strictEqual(module.varadd(2, 3), 5); diff --git a/src/builtins.ts b/src/builtins.ts index 899f5e35..7d7f1f27 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -4164,6 +4164,7 @@ export function compileRTTI(compiler: Compiler): void { var off = 4; var abvInstance = program.arrayBufferViewInstance; var abvPrototype = abvInstance.prototype; + var arrayPrototype = program.arrayPrototype; var setPrototype = program.setPrototype; var mapPrototype = program.mapPrototype; var lastId = 0; @@ -4173,7 +4174,9 @@ export function compileRTTI(compiler: Compiler): void { if (instance.isAcyclic) flags |= TypeinfoFlags.ACYCLIC; if (instance !== abvInstance && instance.extends(abvPrototype)) { let valueType = instance.getArrayValueType(); - flags |= TypeinfoFlags.ARRAY; + flags |= instance.extends(arrayPrototype) + ? TypeinfoFlags.ARRAY + : TypeinfoFlags.ARRAYBUFFERVIEW; flags |= TypeinfoFlags.VALUE_ALIGN_0 * typeToRuntimeFlags(valueType); } else if (instance.extends(setPrototype)) { let typeArguments = assert(instance.getTypeArgumentsTo(setPrototype)); diff --git a/std/assembly/shared/typeinfo.ts b/std/assembly/shared/typeinfo.ts index a55f61e0..e20e8ff7 100644 --- a/std/assembly/shared/typeinfo.ts +++ b/std/assembly/shared/typeinfo.ts @@ -25,48 +25,50 @@ export class Typeinfo { export const enum TypeinfoFlags { /** No specific flags. */ NONE = 0, + /** Type is an `ArrayBufferView`. */ + ARRAYBUFFERVIEW = 1 << 0, /** Type is an `Array`. */ - ARRAY = 1 << 0, + ARRAY = 1 << 1, /** Type is a `Set`. */ - SET = 1 << 1, + SET = 1 << 2, /** Type is a `Map`. */ - MAP = 1 << 2, + MAP = 1 << 3, /** Type is inherently acyclic. */ - ACYCLIC = 1 << 3, + ACYCLIC = 1 << 4, /** Value alignment of 1 byte. */ - VALUE_ALIGN_0 = 1 << 4, + VALUE_ALIGN_0 = 1 << 5, /** Value alignment of 2 bytes. */ - VALUE_ALIGN_1 = 1 << 5, + VALUE_ALIGN_1 = 1 << 6, /** Value alignment of 4 bytes. */ - VALUE_ALIGN_2 = 1 << 6, + VALUE_ALIGN_2 = 1 << 7, /** Value alignment of 8 bytes. */ - VALUE_ALIGN_3 = 1 << 7, + VALUE_ALIGN_3 = 1 << 8, /** Value alignment of 16 bytes. */ - VALUE_ALIGN_4 = 1 << 8, + VALUE_ALIGN_4 = 1 << 9, /** Value is a signed type. */ - VALUE_SIGNED = 1 << 9, + VALUE_SIGNED = 1 << 10, /** Value is a float type. */ - VALUE_FLOAT = 1 << 10, + VALUE_FLOAT = 1 << 11, /** Value type is nullable. */ - VALUE_NULLABLE = 1 << 11, + VALUE_NULLABLE = 1 << 12, /** Value type is managed. */ - VALUE_MANAGED = 1 << 12, + VALUE_MANAGED = 1 << 13, /** Key alignment of 1 byte. */ - KEY_ALIGN_0 = 1 << 13, + KEY_ALIGN_0 = 1 << 14, /** Key alignment of 2 bytes. */ - KEY_ALIGN_1 = 1 << 14, + KEY_ALIGN_1 = 1 << 15, /** Key alignment of 4 bytes. */ - KEY_ALIGN_2 = 1 << 15, + KEY_ALIGN_2 = 1 << 16, /** Key alignment of 8 bytes. */ - KEY_ALIGN_3 = 1 << 16, + KEY_ALIGN_3 = 1 << 17, /** Key alignment of 16 bytes. */ - KEY_ALIGN_4 = 1 << 17, + KEY_ALIGN_4 = 1 << 18, /** Value is a signed type. */ - KEY_SIGNED = 1 << 18, + KEY_SIGNED = 1 << 19, /** Value is a float type. */ - KEY_FLOAT = 1 << 19, + KEY_FLOAT = 1 << 20, /** Key type is nullable. */ - KEY_NULLABLE = 1 << 20, + KEY_NULLABLE = 1 << 21, /** Key type is managed. */ - KEY_MANAGED = 1 << 21 + KEY_MANAGED = 1 << 22 } diff --git a/tests/compiler/rc/global-init.optimized.wat b/tests/compiler/rc/global-init.optimized.wat index 82f610ab..ebc6ed25 100644 --- a/tests/compiler/rc/global-init.optimized.wat +++ b/tests/compiler/rc/global-init.optimized.wat @@ -17,7 +17,7 @@ (data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 272) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") + (data (i32.const 272) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (global $rc/global-init/a (mut i32) (i32.const 0)) (global $rc/global-init/b (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -1353,7 +1353,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/rc/global-init.untouched.wat b/tests/compiler/rc/global-init.untouched.wat index 07fc96b0..e01ae19a 100644 --- a/tests/compiler/rc/global-init.untouched.wat +++ b/tests/compiler/rc/global-init.untouched.wat @@ -20,7 +20,7 @@ (data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") (data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 272) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 272) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $rc/global-init/a (mut i32) (i32.const 0)) @@ -3051,7 +3051,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/rc/local-init.optimized.wat b/tests/compiler/rc/local-init.optimized.wat index c7042cc5..c2468659 100644 --- a/tests/compiler/rc/local-init.optimized.wat +++ b/tests/compiler/rc/local-init.optimized.wat @@ -18,7 +18,7 @@ (data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 272) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") + (data (i32.const 272) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) (global $~lib/rt/pure/END (mut i32) (i32.const 0)) @@ -1405,7 +1405,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/rc/local-init.untouched.wat b/tests/compiler/rc/local-init.untouched.wat index 09130261..ffcb8161 100644 --- a/tests/compiler/rc/local-init.untouched.wat +++ b/tests/compiler/rc/local-init.untouched.wat @@ -20,7 +20,7 @@ (data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") (data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") - (data (i32.const 272) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 272) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3045,7 +3045,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/rc/logical-and-mismatch.optimized.wat b/tests/compiler/rc/logical-and-mismatch.optimized.wat index 2e84f3cf..dff60234 100644 --- a/tests/compiler/rc/logical-and-mismatch.optimized.wat +++ b/tests/compiler/rc/logical-and-mismatch.optimized.wat @@ -18,7 +18,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") + (data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $rc/logical-and-mismatch/gloRef (mut i32) (i32.const 0)) (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) @@ -1412,7 +1412,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/rc/logical-and-mismatch.untouched.wat b/tests/compiler/rc/logical-and-mismatch.untouched.wat index bb3e66b5..42c1ff37 100644 --- a/tests/compiler/rc/logical-and-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-and-mismatch.untouched.wat @@ -19,7 +19,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3061,7 +3061,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/rc/logical-or-mismatch.optimized.wat b/tests/compiler/rc/logical-or-mismatch.optimized.wat index 9442df9d..0d101ecd 100644 --- a/tests/compiler/rc/logical-or-mismatch.optimized.wat +++ b/tests/compiler/rc/logical-or-mismatch.optimized.wat @@ -18,7 +18,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") + (data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $rc/logical-or-mismatch/gloRef (mut i32) (i32.const 0)) (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) @@ -1412,7 +1412,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/rc/logical-or-mismatch.untouched.wat b/tests/compiler/rc/logical-or-mismatch.untouched.wat index f7589a88..e01e4715 100644 --- a/tests/compiler/rc/logical-or-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-or-mismatch.untouched.wat @@ -19,7 +19,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3061,7 +3061,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/rc/rereturn.optimized.wat b/tests/compiler/rc/rereturn.optimized.wat index 7d616276..76b464cb 100644 --- a/tests/compiler/rc/rereturn.optimized.wat +++ b/tests/compiler/rc/rereturn.optimized.wat @@ -13,7 +13,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") + (data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) (global $~lib/rt/pure/END (mut i32) (i32.const 0)) @@ -1398,7 +1398,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/rc/rereturn.untouched.wat b/tests/compiler/rc/rereturn.untouched.wat index 65a50376..ddacffc6 100644 --- a/tests/compiler/rc/rereturn.untouched.wat +++ b/tests/compiler/rc/rereturn.untouched.wat @@ -15,7 +15,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3037,7 +3037,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/rc/ternary-mismatch.optimized.wat b/tests/compiler/rc/ternary-mismatch.optimized.wat index 4d39eb82..954cecc3 100644 --- a/tests/compiler/rc/ternary-mismatch.optimized.wat +++ b/tests/compiler/rc/ternary-mismatch.optimized.wat @@ -18,7 +18,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") + (data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $rc/ternary-mismatch/gloRef (mut i32) (i32.const 0)) (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) @@ -1423,7 +1423,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/rc/ternary-mismatch.untouched.wat b/tests/compiler/rc/ternary-mismatch.untouched.wat index 6de2aa63..5e8aa091 100644 --- a/tests/compiler/rc/ternary-mismatch.untouched.wat +++ b/tests/compiler/rc/ternary-mismatch.untouched.wat @@ -19,7 +19,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 256) "\04\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 256) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3072,7 +3072,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/retain-release-sanity.optimized.wat b/tests/compiler/retain-release-sanity.optimized.wat index 2243de44..89c26788 100644 --- a/tests/compiler/retain-release-sanity.optimized.wat +++ b/tests/compiler/retain-release-sanity.optimized.wat @@ -28,7 +28,7 @@ (data (i32.const 608) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b") (data (i32.const 632) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l") (data (i32.const 656) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00d") - (data (i32.const 680) "\05\00\00\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\02\00\00\02\00\00\00I\10\00\00\02") + (data (i32.const 680) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92\04\00\00\02\00\00\00\92 \00\00\02") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) (global $~lib/rt/pure/END (mut i32) (i32.const 0)) @@ -1416,7 +1416,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index 5e2c8412..7a83f96e 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -28,7 +28,7 @@ (data (i32.const 608) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b\00") (data (i32.const 632) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00") (data (i32.const 656) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00d\00") - (data (i32.const 680) "\05\00\00\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\02\00\00\02\00\00\00I\10\00\00\02\00\00\00") + (data (i32.const 680) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92\04\00\00\02\00\00\00\92 \00\00\02\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3054,7 +3054,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/rt/flags.optimized.wat b/tests/compiler/rt/flags.optimized.wat index cd420b81..6c2d1878 100644 --- a/tests/compiler/rt/flags.optimized.wat +++ b/tests/compiler/rt/flags.optimized.wat @@ -7,11 +7,11 @@ (data (i32.const 8) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 64) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data (i32.const 104) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s") - (data (i32.const 144) ":\00\00\00\08\00\00\00\00\00\00\00\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\02\00\00\02\00\00\00\19\00\00\00\02\00\00\00)\02\00\00\02\00\00\00)\00\00\00\02\00\00\00I\02\00\00\02\00\00\00I\00\00\00\02\00\00\00\89\02\00\00\02\00\00\00\89\00\00\00\02\00\00\00I\06\00\00\02\00\00\00\89\06\00\00\02\00\00\00\t\01\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00I\18\00\00\02\00\00\00\1a\02\00\00\00\00\00\00\1a\00\00\00\00\00\00\00*\02\00\00\00\00\00\00*\00\00\00\00\00\00\00J\02\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\02\00\00\00\00\00\00\8a\00\00\00\00\00\00\00J\06\00\00\00\00\00\00\8a\06\00\00\00\00\00\00\n\01\00\00\00\00\00\00J\10\00\00\00\00\00\00J\18\00\00\00\00\00\00\1c\02\02\00\00\00\00\00,\02\05\00\00\00\00\00L\82\04\00\00\00\00\00\8cB\04\00\00\00\00\00\0c!\04\00\00\00\00\00\1c\82 \00\00\00\00\00\1c\820\00\00\00\00\00L0\04\00\00\00\00\00L8\04\00\00\00\00\00L\980\00\00\00\00\00L\82\0c\00\00\00\00\00\08") - (data (i32.const 524) "A\10\00\00\02\00\00\00\08") - (data (i32.const 548) "B\10\00\00\00\00\00\00\08") - (data (i32.const 572) "D\82 ") - (data (i32.const 588) "D\90\04\00\00\00\00\00\08\00\00\00\00\00\00\00\08") + (data (i32.const 144) "E\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\04\00\00\02\00\00\001\00\00\00\02\00\00\001\00\00\00\02\00\00\00Q\04\00\00\02\00\00\00Q\00\00\00\02\00\00\00\91\04\00\00\02\00\00\00\91\00\00\00\02\00\00\00\11\05\00\00\02\00\00\00\11\01\00\00\02\00\00\00\91\0c\00\00\02\00\00\00\11\0d\00\00\02\00\00\002\04\00\00\02\00\00\002\00\00\00\02\00\00\00R\04\00\00\02\00\00\00R\00\00\00\02\00\00\00\92\04\00\00\02\00\00\00\92\00\00\00\02\00\00\00\12\05\00\00\02\00\00\00\12\01\00\00\02\00\00\00\92\0c\00\00\02\00\00\00\12\0d\00\00\02\00\00\00\12\02\00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\920\00\00\02\00\00\004\04\00\00\00\00\00\004\00\00\00\00\00\00\00T\04\00\00\00\00\00\00T\00\00\00\00\00\00\00\94\04\00\00\00\00\00\00\94\00\00\00\00\00\00\00\14\05\00\00\00\00\00\00\14\01\00\00\00\00\00\00\94\0c\00\00\00\00\00\00\14\0d\00\00\00\00\00\00\14\02\00\00\00\00\00\00\94 \00\00\00\00\00\00\940\00\00\00\00\00\008\04\04\00\00\00\00\00X\04\n\00\00\00\00\00\98\04\t\00\00\00\00\00\18\85\08\00\00\00\00\00\18B\08\00\00\00\00\008\04A\00\00\00\00\008\04a\00\00\00\00\00\98`\08\00\00\00\00\00\98p\08\00\00\00\00\00\980a\00\00\00\00\00\98\04\19\00\00\00\00\00\10") + (data (i32.const 612) "\82 \00\00\02\00\00\00\10") + (data (i32.const 636) "\84 \00\00\00\00\00\00\10") + (data (i32.const 660) "\88\04A") + (data (i32.const 676) "\88 \t\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (export "memory" (memory $0)) (start $start) (func $~lib/rt/__typeinfo (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) @@ -38,306 +38,344 @@ block $folding-inner0 i32.const 4 call $~lib/rt/__typeinfo - i32.const 537 + i32.const 1073 i32.ne if br $folding-inner0 end i32.const 5 call $~lib/rt/__typeinfo - i32.const 25 + i32.const 49 i32.ne if br $folding-inner0 end i32.const 6 call $~lib/rt/__typeinfo - i32.const 553 + i32.const 49 i32.ne if br $folding-inner0 end i32.const 7 call $~lib/rt/__typeinfo - i32.const 41 + i32.const 1105 i32.ne if br $folding-inner0 end i32.const 8 call $~lib/rt/__typeinfo - i32.const 585 + i32.const 81 i32.ne if br $folding-inner0 end i32.const 9 call $~lib/rt/__typeinfo - i32.const 73 + i32.const 1169 i32.ne if br $folding-inner0 end i32.const 10 call $~lib/rt/__typeinfo - i32.const 649 + i32.const 145 i32.ne if br $folding-inner0 end i32.const 11 call $~lib/rt/__typeinfo - i32.const 137 + i32.const 1297 i32.ne if br $folding-inner0 end i32.const 12 call $~lib/rt/__typeinfo - i32.const 1609 + i32.const 273 i32.ne if br $folding-inner0 end i32.const 13 call $~lib/rt/__typeinfo - i32.const 1673 + i32.const 3217 i32.ne if br $folding-inner0 end i32.const 14 call $~lib/rt/__typeinfo - i32.const 265 + i32.const 3345 + i32.ne + if + br $folding-inner0 + end + i32.const 15 + call $~lib/rt/__typeinfo + i32.const 1074 i32.ne if br $folding-inner0 end i32.const 16 call $~lib/rt/__typeinfo - i32.const 4169 + i32.const 50 i32.ne if br $folding-inner0 end i32.const 17 call $~lib/rt/__typeinfo - i32.const 6217 + i32.const 1106 i32.ne if br $folding-inner0 end i32.const 18 call $~lib/rt/__typeinfo - i32.const 538 + i32.const 82 i32.ne if br $folding-inner0 end i32.const 19 call $~lib/rt/__typeinfo - i32.const 26 + i32.const 1170 i32.ne if br $folding-inner0 end i32.const 20 call $~lib/rt/__typeinfo - i32.const 554 + i32.const 146 i32.ne if br $folding-inner0 end i32.const 21 call $~lib/rt/__typeinfo - i32.const 42 + i32.const 1298 i32.ne if br $folding-inner0 end i32.const 22 call $~lib/rt/__typeinfo - i32.const 586 + i32.const 274 i32.ne if br $folding-inner0 end i32.const 23 call $~lib/rt/__typeinfo - i32.const 74 + i32.const 3218 i32.ne if br $folding-inner0 end i32.const 24 call $~lib/rt/__typeinfo - i32.const 650 + i32.const 3346 i32.ne if br $folding-inner0 end i32.const 25 call $~lib/rt/__typeinfo - i32.const 138 - i32.ne - if - br $folding-inner0 - end - i32.const 26 - call $~lib/rt/__typeinfo - i32.const 1610 + i32.const 530 i32.ne if br $folding-inner0 end i32.const 27 call $~lib/rt/__typeinfo - i32.const 1674 + i32.const 8338 i32.ne if br $folding-inner0 end i32.const 28 call $~lib/rt/__typeinfo - i32.const 266 + i32.const 12434 i32.ne if br $folding-inner0 end i32.const 29 call $~lib/rt/__typeinfo - i32.const 4170 + i32.const 1076 i32.ne if br $folding-inner0 end i32.const 30 call $~lib/rt/__typeinfo - i32.const 6218 + i32.const 52 i32.ne if br $folding-inner0 end i32.const 31 call $~lib/rt/__typeinfo - i32.const 131612 + i32.const 1108 i32.ne if br $folding-inner0 end i32.const 32 call $~lib/rt/__typeinfo - i32.const 328236 + i32.const 84 i32.ne if br $folding-inner0 end i32.const 33 call $~lib/rt/__typeinfo - i32.const 295500 + i32.const 1172 i32.ne if br $folding-inner0 end i32.const 34 call $~lib/rt/__typeinfo - i32.const 279180 + i32.const 148 i32.ne if br $folding-inner0 end i32.const 35 call $~lib/rt/__typeinfo - i32.const 270604 + i32.const 1300 i32.ne if br $folding-inner0 end i32.const 36 call $~lib/rt/__typeinfo - i32.const 2130460 + i32.const 276 i32.ne if br $folding-inner0 end i32.const 37 call $~lib/rt/__typeinfo - i32.const 3179036 + i32.const 3220 i32.ne if br $folding-inner0 end i32.const 38 call $~lib/rt/__typeinfo - i32.const 274508 + i32.const 3348 i32.ne if br $folding-inner0 end i32.const 39 call $~lib/rt/__typeinfo - i32.const 276556 + i32.const 532 i32.ne if br $folding-inner0 end i32.const 40 call $~lib/rt/__typeinfo - i32.const 3184716 + i32.const 8340 i32.ne if br $folding-inner0 end i32.const 41 call $~lib/rt/__typeinfo - i32.const 819788 + i32.const 12436 i32.ne if br $folding-inner0 end i32.const 42 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 263224 i32.ne if br $folding-inner0 end i32.const 43 call $~lib/rt/__typeinfo + i32.const 656472 + i32.ne if br $folding-inner0 end i32.const 44 call $~lib/rt/__typeinfo + i32.const 591000 + i32.ne + if + br $folding-inner0 + end + i32.const 45 + call $~lib/rt/__typeinfo + i32.const 558360 + i32.ne if br $folding-inner0 end i32.const 46 call $~lib/rt/__typeinfo + i32.const 541208 + i32.ne + if + br $folding-inner0 + end + i32.const 47 + call $~lib/rt/__typeinfo + i32.const 4260920 + i32.ne if br $folding-inner0 end i32.const 48 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 6358072 i32.ne if br $folding-inner0 end i32.const 49 call $~lib/rt/__typeinfo + i32.const 549016 + i32.ne + if + br $folding-inner0 + end + i32.const 50 + call $~lib/rt/__typeinfo + i32.const 553112 + i32.ne if br $folding-inner0 end i32.const 51 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 6369432 i32.ne if br $folding-inner0 end i32.const 52 call $~lib/rt/__typeinfo + i32.const 1639576 + i32.ne + if + br $folding-inner0 + end + i32.const 53 + call $~lib/rt/__typeinfo + i32.const 16 + i32.ne if br $folding-inner0 end @@ -346,16 +384,55 @@ if br $folding-inner0 end - i32.const 56 + i32.const 55 call $~lib/rt/__typeinfo - i32.const 8 - i32.ne if br $folding-inner0 end i32.const 57 call $~lib/rt/__typeinfo - i32.const 8 + if + br $folding-inner0 + end + i32.const 59 + call $~lib/rt/__typeinfo + i32.const 16 + i32.ne + if + br $folding-inner0 + end + i32.const 60 + call $~lib/rt/__typeinfo + if + br $folding-inner0 + end + i32.const 62 + call $~lib/rt/__typeinfo + i32.const 16 + i32.ne + if + br $folding-inner0 + end + i32.const 63 + call $~lib/rt/__typeinfo + if + br $folding-inner0 + end + i32.const 65 + call $~lib/rt/__typeinfo + if + br $folding-inner0 + end + i32.const 67 + call $~lib/rt/__typeinfo + i32.const 16 + i32.ne + if + br $folding-inner0 + end + i32.const 68 + call $~lib/rt/__typeinfo + i32.const 16 i32.ne if br $folding-inner0 diff --git a/tests/compiler/rt/flags.ts b/tests/compiler/rt/flags.ts index d42b0728..9777acf8 100644 --- a/tests/compiler/rt/flags.ts +++ b/tests/compiler/rt/flags.ts @@ -12,6 +12,18 @@ function test(flags: TypeinfoFlags): void { // structure flags +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_0 | TypeinfoFlags.VALUE_SIGNED); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_0); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_0); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_1 | TypeinfoFlags.VALUE_SIGNED); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_1); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_2); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_3); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_2 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); +test(TypeinfoFlags.ARRAYBUFFERVIEW | TypeinfoFlags.ACYCLIC | TypeinfoFlags.VALUE_ALIGN_3 | TypeinfoFlags.VALUE_SIGNED | TypeinfoFlags.VALUE_FLOAT); + class Ref {} const VALUE_ALIGN_REF = sizeof() == 4 ? TypeinfoFlags.VALUE_ALIGN_2 : TypeinfoFlags.VALUE_ALIGN_3; diff --git a/tests/compiler/rt/flags.untouched.wat b/tests/compiler/rt/flags.untouched.wat index 0b944445..94918cd7 100644 --- a/tests/compiler/rt/flags.untouched.wat +++ b/tests/compiler/rt/flags.untouched.wat @@ -8,11 +8,11 @@ (data (i32.const 8) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 64) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") (data (i32.const 104) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00r\00t\00/\00f\00l\00a\00g\00s\00.\00t\00s\00") - (data (i32.const 144) ":\00\00\00\08\00\00\00\00\00\00\00\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\02\00\00\02\00\00\00\19\00\00\00\02\00\00\00)\02\00\00\02\00\00\00)\00\00\00\02\00\00\00I\02\00\00\02\00\00\00I\00\00\00\02\00\00\00\89\02\00\00\02\00\00\00\89\00\00\00\02\00\00\00I\06\00\00\02\00\00\00\89\06\00\00\02\00\00\00\t\01\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00I\18\00\00\02\00\00\00\1a\02\00\00\00\00\00\00\1a\00\00\00\00\00\00\00*\02\00\00\00\00\00\00*\00\00\00\00\00\00\00J\02\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\02\00\00\00\00\00\00\8a\00\00\00\00\00\00\00J\06\00\00\00\00\00\00\8a\06\00\00\00\00\00\00\n\01\00\00\00\00\00\00J\10\00\00\00\00\00\00J\18\00\00\00\00\00\00\1c\02\02\00\00\00\00\00,\02\05\00\00\00\00\00L\82\04\00\00\00\00\00\8cB\04\00\00\00\00\00\0c!\04\00\00\00\00\00\1c\82 \00\00\00\00\00\1c\820\00\00\00\00\00L0\04\00\00\00\00\00L8\04\00\00\00\00\00L\980\00\00\00\00\00L\82\0c\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\10\00\00\02\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\10\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00D\82 \00\00\00\00\00\00\00\00\00\00\00\00\00D\90\04\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 144) "E\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\04\00\00\02\00\00\001\00\00\00\02\00\00\001\00\00\00\02\00\00\00Q\04\00\00\02\00\00\00Q\00\00\00\02\00\00\00\91\04\00\00\02\00\00\00\91\00\00\00\02\00\00\00\11\05\00\00\02\00\00\00\11\01\00\00\02\00\00\00\91\0c\00\00\02\00\00\00\11\0d\00\00\02\00\00\002\04\00\00\02\00\00\002\00\00\00\02\00\00\00R\04\00\00\02\00\00\00R\00\00\00\02\00\00\00\92\04\00\00\02\00\00\00\92\00\00\00\02\00\00\00\12\05\00\00\02\00\00\00\12\01\00\00\02\00\00\00\92\0c\00\00\02\00\00\00\12\0d\00\00\02\00\00\00\12\02\00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\920\00\00\02\00\00\004\04\00\00\00\00\00\004\00\00\00\00\00\00\00T\04\00\00\00\00\00\00T\00\00\00\00\00\00\00\94\04\00\00\00\00\00\00\94\00\00\00\00\00\00\00\14\05\00\00\00\00\00\00\14\01\00\00\00\00\00\00\94\0c\00\00\00\00\00\00\14\0d\00\00\00\00\00\00\14\02\00\00\00\00\00\00\94 \00\00\00\00\00\00\940\00\00\00\00\00\008\04\04\00\00\00\00\00X\04\n\00\00\00\00\00\98\04\t\00\00\00\00\00\18\85\08\00\00\00\00\00\18B\08\00\00\00\00\008\04A\00\00\00\00\008\04a\00\00\00\00\00\98`\08\00\00\00\00\00\98p\08\00\00\00\00\00\980a\00\00\00\00\00\98\04\19\00\00\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\82 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\84 \00\00\00\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\88\04A\00\00\00\00\00\00\00\00\00\00\00\00\00\88 \t\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) - (global $rt/flags/VALUE_ALIGN_REF i32 (i32.const 64)) - (global $rt/flags/KEY_ALIGN_REF i32 (i32.const 32768)) + (global $rt/flags/VALUE_ALIGN_REF i32 (i32.const 128)) + (global $rt/flags/KEY_ALIGN_REF i32 (i32.const 65536)) (global $~lib/rt/RTTI_BASE i32 (i32.const 144)) (export "memory" (memory $0)) (start $start) @@ -41,7 +41,7 @@ i32.add i32.load ) - (func $rt/flags/test<~lib/array/Array> (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Int8Array> (; 2 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 4 call $~lib/rt/__typeinfo local.get $0 @@ -56,7 +56,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 3 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Uint8Array> (; 3 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 5 call $~lib/rt/__typeinfo local.get $0 @@ -71,7 +71,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Uint8ClampedArray> (; 4 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 6 call $~lib/rt/__typeinfo local.get $0 @@ -86,7 +86,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Int16Array> (; 5 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 7 call $~lib/rt/__typeinfo local.get $0 @@ -101,7 +101,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Uint16Array> (; 6 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 8 call $~lib/rt/__typeinfo local.get $0 @@ -116,7 +116,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Int32Array> (; 7 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 9 call $~lib/rt/__typeinfo local.get $0 @@ -131,7 +131,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Uint32Array> (; 8 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 10 call $~lib/rt/__typeinfo local.get $0 @@ -146,7 +146,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Int64Array> (; 9 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 11 call $~lib/rt/__typeinfo local.get $0 @@ -161,7 +161,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 10 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Uint64Array> (; 10 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 12 call $~lib/rt/__typeinfo local.get $0 @@ -176,7 +176,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Float32Array> (; 11 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 13 call $~lib/rt/__typeinfo local.get $0 @@ -191,7 +191,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/typedarray/Float64Array> (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 14 call $~lib/rt/__typeinfo local.get $0 @@ -206,7 +206,22 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 13 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 13 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 15 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test<~lib/array/Array> (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 16 call $~lib/rt/__typeinfo local.get $0 @@ -221,7 +236,7 @@ unreachable end ) - (func $rt/flags/test<~lib/array/Array> (; 14 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 17 call $~lib/rt/__typeinfo local.get $0 @@ -236,7 +251,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 15 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 18 call $~lib/rt/__typeinfo local.get $0 @@ -251,7 +266,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 16 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 19 call $~lib/rt/__typeinfo local.get $0 @@ -266,7 +281,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 17 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 18 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 20 call $~lib/rt/__typeinfo local.get $0 @@ -281,7 +296,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 18 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 19 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 21 call $~lib/rt/__typeinfo local.get $0 @@ -296,7 +311,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 19 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 22 call $~lib/rt/__typeinfo local.get $0 @@ -311,7 +326,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 20 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 23 call $~lib/rt/__typeinfo local.get $0 @@ -326,7 +341,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 21 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 24 call $~lib/rt/__typeinfo local.get $0 @@ -341,7 +356,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 22 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 25 call $~lib/rt/__typeinfo local.get $0 @@ -356,22 +371,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 23 ;) (type $FUNCSIG$vi) (param $0 i32) - i32.const 26 - call $~lib/rt/__typeinfo - local.get $0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 120 - i32.const 6 - i32.const 2 - call $~lib/builtins/abort - unreachable - end - ) - (func $rt/flags/test<~lib/set/Set> (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 24 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 27 call $~lib/rt/__typeinfo local.get $0 @@ -386,7 +386,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/array/Array> (; 25 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 28 call $~lib/rt/__typeinfo local.get $0 @@ -401,7 +401,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 26 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 29 call $~lib/rt/__typeinfo local.get $0 @@ -416,7 +416,7 @@ unreachable end ) - (func $rt/flags/test<~lib/set/Set> (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 27 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 30 call $~lib/rt/__typeinfo local.get $0 @@ -431,7 +431,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 28 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 31 call $~lib/rt/__typeinfo local.get $0 @@ -446,7 +446,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 29 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 32 call $~lib/rt/__typeinfo local.get $0 @@ -461,7 +461,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 30 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 30 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 33 call $~lib/rt/__typeinfo local.get $0 @@ -476,7 +476,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 31 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 34 call $~lib/rt/__typeinfo local.get $0 @@ -491,7 +491,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 32 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 35 call $~lib/rt/__typeinfo local.get $0 @@ -506,7 +506,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 33 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 36 call $~lib/rt/__typeinfo local.get $0 @@ -521,7 +521,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 34 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 34 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 37 call $~lib/rt/__typeinfo local.get $0 @@ -536,7 +536,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 35 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 38 call $~lib/rt/__typeinfo local.get $0 @@ -551,7 +551,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 36 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 39 call $~lib/rt/__typeinfo local.get $0 @@ -566,7 +566,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 37 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 40 call $~lib/rt/__typeinfo local.get $0 @@ -581,7 +581,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/set/Set> (; 38 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 41 call $~lib/rt/__typeinfo local.get $0 @@ -596,7 +596,7 @@ unreachable end ) - (func $rt/flags/test (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/map/Map> (; 39 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 42 call $~lib/rt/__typeinfo local.get $0 @@ -611,7 +611,7 @@ unreachable end ) - (func $rt/flags/test (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/map/Map> (; 40 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 43 call $~lib/rt/__typeinfo local.get $0 @@ -626,7 +626,7 @@ unreachable end ) - (func $rt/flags/test (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/map/Map> (; 41 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 44 call $~lib/rt/__typeinfo local.get $0 @@ -641,7 +641,22 @@ unreachable end ) - (func $rt/flags/test (; 42 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/map/Map> (; 42 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 45 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test<~lib/map/Map> (; 43 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 46 call $~lib/rt/__typeinfo local.get $0 @@ -656,7 +671,22 @@ unreachable end ) - (func $rt/flags/test (; 43 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/map/Map> (; 44 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 47 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test<~lib/map/Map> (; 45 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 48 call $~lib/rt/__typeinfo local.get $0 @@ -671,7 +701,7 @@ unreachable end ) - (func $rt/flags/test (; 44 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/map/Map> (; 46 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 49 call $~lib/rt/__typeinfo local.get $0 @@ -686,7 +716,22 @@ unreachable end ) - (func $rt/flags/test (; 45 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/map/Map> (; 47 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 50 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test<~lib/map/Map> (; 48 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 51 call $~lib/rt/__typeinfo local.get $0 @@ -701,7 +746,7 @@ unreachable end ) - (func $rt/flags/test (; 46 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test<~lib/map/Map> (; 49 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 52 call $~lib/rt/__typeinfo local.get $0 @@ -716,7 +761,22 @@ unreachable end ) - (func $rt/flags/test (; 47 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test (; 50 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 53 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test (; 51 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 54 call $~lib/rt/__typeinfo local.get $0 @@ -731,8 +791,8 @@ unreachable end ) - (func $rt/flags/test (; 48 ;) (type $FUNCSIG$vi) (param $0 i32) - i32.const 56 + (func $rt/flags/test (; 52 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 55 call $~lib/rt/__typeinfo local.get $0 i32.eq @@ -746,7 +806,7 @@ unreachable end ) - (func $rt/flags/test (; 49 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $rt/flags/test (; 53 ;) (type $FUNCSIG$vi) (param $0 i32) i32.const 57 call $~lib/rt/__typeinfo local.get $0 @@ -761,346 +821,533 @@ unreachable end ) - (func $start:rt/flags (; 50 ;) (type $FUNCSIG$v) + (func $rt/flags/test (; 54 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 59 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test (; 55 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 60 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test (; 56 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 62 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test (; 57 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 63 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test (; 58 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 65 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test (; 59 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 67 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $rt/flags/test (; 60 ;) (type $FUNCSIG$vi) (param $0 i32) + i32.const 68 + call $~lib/rt/__typeinfo + local.get $0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 120 + i32.const 6 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:rt/flags (; 61 ;) (type $FUNCSIG$v) i32.const 1 - i32.const 8 - i32.or i32.const 16 i32.or - i32.const 512 + i32.const 32 + i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/typedarray/Int8Array> + i32.const 1 + i32.const 16 + i32.or + i32.const 32 + i32.or + call $rt/flags/test<~lib/typedarray/Uint8Array> + i32.const 1 + i32.const 16 + i32.or + i32.const 32 + i32.or + call $rt/flags/test<~lib/typedarray/Uint8ClampedArray> + i32.const 1 + i32.const 16 + i32.or + i32.const 64 + i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/typedarray/Int16Array> + i32.const 1 + i32.const 16 + i32.or + i32.const 64 + i32.or + call $rt/flags/test<~lib/typedarray/Uint16Array> + i32.const 1 + i32.const 16 + i32.or + i32.const 128 + i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/typedarray/Int32Array> + i32.const 1 + i32.const 16 + i32.or + i32.const 128 + i32.or + call $rt/flags/test<~lib/typedarray/Uint32Array> + i32.const 1 + i32.const 16 + i32.or + i32.const 256 + i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/typedarray/Int64Array> + i32.const 1 + i32.const 16 + i32.or + i32.const 256 + i32.or + call $rt/flags/test<~lib/typedarray/Uint64Array> + i32.const 1 + i32.const 16 + i32.or + i32.const 128 + i32.or + i32.const 1024 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/typedarray/Float32Array> + i32.const 1 + i32.const 16 + i32.or + i32.const 256 + i32.or + i32.const 1024 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/typedarray/Float64Array> + i32.const 2 + i32.const 16 + i32.or + i32.const 32 + i32.or + i32.const 1024 i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 - i32.or + i32.const 2 i32.const 16 i32.or + i32.const 32 + i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or - i32.const 32 + i32.const 64 i32.or - i32.const 512 + i32.const 1024 i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or - i32.const 32 + i32.const 64 i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or - i32.const 64 + i32.const 128 i32.or - i32.const 512 + i32.const 1024 i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or - i32.const 64 + i32.const 128 i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or - i32.const 128 + i32.const 256 i32.or - i32.const 512 + i32.const 1024 i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or - i32.const 128 + i32.const 256 i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or - i32.const 64 - i32.or - i32.const 512 + i32.const 128 i32.or i32.const 1024 i32.or + i32.const 2048 + i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or - i32.const 128 - i32.or - i32.const 512 + i32.const 256 i32.or i32.const 1024 i32.or + i32.const 2048 + i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or - i32.const 256 + i32.const 512 i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or global.get $rt/flags/VALUE_ALIGN_REF i32.or - i32.const 4096 + i32.const 8192 i32.or call $rt/flags/test<~lib/array/Array> - i32.const 1 - i32.const 8 + i32.const 2 + i32.const 16 i32.or global.get $rt/flags/VALUE_ALIGN_REF i32.or - i32.const 2048 - i32.or i32.const 4096 i32.or + i32.const 8192 + i32.or call $rt/flags/test<~lib/array/Array> - i32.const 2 - i32.const 8 - i32.or + i32.const 4 i32.const 16 i32.or - i32.const 512 + i32.const 32 + i32.or + i32.const 1024 i32.or call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 - i32.or + i32.const 4 i32.const 16 i32.or + i32.const 32 + i32.or call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 + i32.const 4 + i32.const 16 i32.or - i32.const 32 + i32.const 64 i32.or - i32.const 512 + i32.const 1024 i32.or call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 + i32.const 4 + i32.const 16 i32.or - i32.const 32 + i32.const 64 i32.or call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 + i32.const 4 + i32.const 16 i32.or - i32.const 64 + i32.const 128 i32.or - i32.const 512 + i32.const 1024 i32.or call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 + i32.const 4 + i32.const 16 i32.or - i32.const 64 + i32.const 128 i32.or call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 - i32.or - i32.const 128 - i32.or - i32.const 512 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 - i32.or - i32.const 128 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 - i32.or - i32.const 64 - i32.or - i32.const 512 - i32.or - i32.const 1024 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 - i32.or - i32.const 128 - i32.or - i32.const 512 - i32.or - i32.const 1024 - i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 + i32.const 4 + i32.const 16 i32.or i32.const 256 i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 + i32.const 1024 i32.or - global.get $rt/flags/VALUE_ALIGN_REF + call $rt/flags/test<~lib/set/Set> + i32.const 4 + i32.const 16 i32.or - i32.const 4096 + i32.const 256 i32.or - call $rt/flags/test<~lib/set/Set> - i32.const 2 - i32.const 8 + call $rt/flags/test<~lib/set/Set> + i32.const 4 + i32.const 16 i32.or - global.get $rt/flags/VALUE_ALIGN_REF + i32.const 128 + i32.or + i32.const 1024 i32.or i32.const 2048 i32.or - i32.const 4096 - i32.or - call $rt/flags/test<~lib/set/Set> + call $rt/flags/test<~lib/set/Set> i32.const 4 - i32.const 8 + i32.const 16 i32.or - i32.const 131072 + i32.const 256 i32.or + i32.const 1024 + i32.or + i32.const 2048 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 4 i32.const 16 i32.or i32.const 512 i32.or - call $rt/flags/test<~lib/map/Map> + call $rt/flags/test<~lib/set/Set> i32.const 4 - i32.const 8 + i32.const 16 i32.or - i32.const 65536 + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + i32.const 8192 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 4 + i32.const 16 + i32.or + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + i32.const 4096 + i32.or + i32.const 8192 + i32.or + call $rt/flags/test<~lib/set/Set> + i32.const 8 + i32.const 16 i32.or i32.const 262144 i32.or i32.const 32 i32.or - i32.const 512 + i32.const 1024 i32.or - call $rt/flags/test<~lib/map/Map> - i32.const 4 + call $rt/flags/test<~lib/map/Map> i32.const 8 - i32.or - i32.const 32768 - i32.or - i32.const 262144 - i32.or - i32.const 64 - i32.or - i32.const 512 - i32.or - call $rt/flags/test<~lib/map/Map> - i32.const 4 - i32.const 8 - i32.or - i32.const 16384 - i32.or - i32.const 262144 - i32.or - i32.const 128 - i32.or - i32.const 512 - i32.or - call $rt/flags/test<~lib/map/Map> - i32.const 4 - i32.const 8 - i32.or - i32.const 8192 - i32.or - i32.const 262144 - i32.or - i32.const 256 - i32.or - call $rt/flags/test<~lib/map/Map> - i32.const 4 - i32.const 8 - i32.or - global.get $rt/flags/KEY_ALIGN_REF - i32.or - i32.const 2097152 - i32.or i32.const 16 i32.or - i32.const 512 - i32.or - call $rt/flags/test<~lib/map/Map> - i32.const 4 - i32.const 8 - i32.or - global.get $rt/flags/KEY_ALIGN_REF - i32.or - i32.const 1048576 - i32.or - i32.const 2097152 - i32.or - i32.const 16 - i32.or - i32.const 512 - i32.or - call $rt/flags/test<~lib/map/Map> - i32.const 4 - i32.const 8 - i32.or - i32.const 8192 - i32.or - i32.const 262144 - i32.or - i32.const 4096 - i32.or - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - call $rt/flags/test<~lib/map/Map> - i32.const 4 - i32.const 8 - i32.or - i32.const 8192 - i32.or - i32.const 262144 - i32.or - i32.const 2048 - i32.or - i32.const 4096 - i32.or - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - call $rt/flags/test<~lib/map/Map> - i32.const 4 - i32.const 8 - i32.or - i32.const 1048576 - i32.or - i32.const 2097152 - i32.or - global.get $rt/flags/KEY_ALIGN_REF - i32.or - i32.const 2048 - i32.or - i32.const 4096 - i32.or - global.get $rt/flags/VALUE_ALIGN_REF - i32.or - call $rt/flags/test<~lib/map/Map> - i32.const 4 - i32.const 8 - i32.or - i32.const 32768 - i32.or - i32.const 262144 + i32.const 131072 i32.or i32.const 524288 i32.or i32.const 64 i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/map/Map> + i32.const 8 + i32.const 16 + i32.or + i32.const 65536 + i32.or + i32.const 524288 + i32.or + i32.const 128 + i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/map/Map> + i32.const 8 + i32.const 16 + i32.or + i32.const 32768 + i32.or + i32.const 524288 + i32.or + i32.const 256 + i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/map/Map> + i32.const 8 + i32.const 16 + i32.or + i32.const 16384 + i32.or + i32.const 524288 + i32.or i32.const 512 i32.or - call $rt/flags/test<~lib/map/Map> + call $rt/flags/test<~lib/map/Map> i32.const 8 + i32.const 16 + i32.or + global.get $rt/flags/KEY_ALIGN_REF + i32.or + i32.const 4194304 + i32.or + i32.const 32 + i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/map/Map> + i32.const 8 + i32.const 16 + i32.or + global.get $rt/flags/KEY_ALIGN_REF + i32.or + i32.const 2097152 + i32.or + i32.const 4194304 + i32.or + i32.const 32 + i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/map/Map> + i32.const 8 + i32.const 16 + i32.or + i32.const 16384 + i32.or + i32.const 524288 + i32.or + i32.const 8192 + i32.or + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + call $rt/flags/test<~lib/map/Map> + i32.const 8 + i32.const 16 + i32.or + i32.const 16384 + i32.or + i32.const 524288 + i32.or + i32.const 4096 + i32.or + i32.const 8192 + i32.or + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + call $rt/flags/test<~lib/map/Map> + i32.const 8 + i32.const 16 + i32.or + i32.const 2097152 + i32.or + i32.const 4194304 + i32.or + global.get $rt/flags/KEY_ALIGN_REF + i32.or + i32.const 4096 + i32.or + i32.const 8192 + i32.or + global.get $rt/flags/VALUE_ALIGN_REF + i32.or + call $rt/flags/test<~lib/map/Map> + i32.const 8 + i32.const 16 + i32.or + i32.const 65536 + i32.or + i32.const 524288 + i32.or + i32.const 1048576 + i32.or + i32.const 128 + i32.or + i32.const 1024 + i32.or + call $rt/flags/test<~lib/map/Map> + i32.const 16 call $rt/flags/test i32.const 0 call $rt/flags/test @@ -1108,24 +1355,24 @@ call $rt/flags/test i32.const 0 call $rt/flags/test - i32.const 8 + i32.const 16 call $rt/flags/test i32.const 0 call $rt/flags/test - i32.const 8 + i32.const 16 call $rt/flags/test i32.const 0 call $rt/flags/test i32.const 0 call $rt/flags/test - i32.const 8 + i32.const 16 call $rt/flags/test - i32.const 8 + i32.const 16 call $rt/flags/test ) - (func $start (; 51 ;) (type $FUNCSIG$v) + (func $start (; 62 ;) (type $FUNCSIG$v) call $start:rt/flags ) - (func $null (; 52 ;) (type $FUNCSIG$v) + (func $null (; 63 ;) (type $FUNCSIG$v) ) ) diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 9cf790ec..26ec8a65 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -7,7 +7,7 @@ (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00r\00t\00/\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s") - (data (i32.const 56) "\06\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\08\00\00\00\04") + (data (i32.const 56) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\10\00\00\00\04") (global $~lib/rt/stub/startOffset (mut i32) (i32.const 0)) (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) (global $rt/instanceof/animal (mut i32) (i32.const 0)) diff --git a/tests/compiler/rt/instanceof.untouched.wat b/tests/compiler/rt/instanceof.untouched.wat index 4b36d852..8f8ed4c3 100644 --- a/tests/compiler/rt/instanceof.untouched.wat +++ b/tests/compiler/rt/instanceof.untouched.wat @@ -6,7 +6,7 @@ (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00r\00t\00/\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00") - (data (i32.const 56) "\06\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\08\00\00\00\04\00\00\00") + (data (i32.const 56) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\10\00\00\00\04\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/stub/startOffset (mut i32) (i32.const 0)) diff --git a/tests/compiler/runtime-full.optimized.wat b/tests/compiler/runtime-full.optimized.wat index 739e2fd5..b4800842 100644 --- a/tests/compiler/runtime-full.optimized.wat +++ b/tests/compiler/runtime-full.optimized.wat @@ -13,7 +13,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 256) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") + (data (i32.const 256) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) (global $~lib/rt/pure/END (mut i32) (i32.const 0)) @@ -1397,7 +1397,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/runtime-full.untouched.wat b/tests/compiler/runtime-full.untouched.wat index e427f56d..884f76f5 100644 --- a/tests/compiler/runtime-full.untouched.wat +++ b/tests/compiler/runtime-full.untouched.wat @@ -14,7 +14,7 @@ (data (i32.const 112) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") (data (i32.const 160) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 216) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 256) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 256) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3035,7 +3035,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/runtime-stub.optimized.wat b/tests/compiler/runtime-stub.optimized.wat index 5ef958c2..b1ccf693 100644 --- a/tests/compiler/runtime-stub.optimized.wat +++ b/tests/compiler/runtime-stub.optimized.wat @@ -4,7 +4,7 @@ (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$v (func)) (memory $0 1) - (data (i32.const 8) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08") + (data (i32.const 8) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10") (global $~lib/rt/stub/startOffset (mut i32) (i32.const 0)) (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) (global $~lib/rt/RTTI_BASE i32 (i32.const 8)) diff --git a/tests/compiler/runtime-stub.untouched.wat b/tests/compiler/runtime-stub.untouched.wat index 70f72328..e5e19bc3 100644 --- a/tests/compiler/runtime-stub.untouched.wat +++ b/tests/compiler/runtime-stub.untouched.wat @@ -4,7 +4,7 @@ (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$v (func)) (memory $0 1) - (data (i32.const 8) "\03\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00") + (data (i32.const 8) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/stub/startOffset (mut i32) (i32.const 0)) diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 1f2014f0..72b11974 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -26,7 +26,7 @@ (data (i32.const 384) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") (data (i32.const 440) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s") (data (i32.const 488) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 528) "\t\00\00\00\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\02\00\00\02\00\00\00I\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02") + (data (i32.const 528) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\002\04\00\00\02\00\00\00\92\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02") (global $std/array-literal/emptyArrayI32 i32 (i32.const 320)) (global $std/array-literal/i (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -1499,7 +1499,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index c02a4dcf..93cf79f6 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -27,7 +27,7 @@ (data (i32.const 384) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00") (data (i32.const 440) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00") (data (i32.const 488) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") - (data (i32.const 528) "\t\00\00\00\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\02\00\00\02\00\00\00I\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00") + (data (i32.const 528) "\t\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\002\04\00\00\02\00\00\00\92\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/array-literal/staticArrayI8 i32 (i32.const 48)) @@ -3194,7 +3194,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 478bdc0e..407ff015 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -210,7 +210,7 @@ (data (i32.const 7176) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") (data (i32.const 7200) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") (data (i32.const 7224) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") - (data (i32.const 7248) "\1a\00\00\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\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\02\00\00\00\19\00\00\00\02\00\00\00I\00\00\00\02\00\00\00I\06\00\00\02\00\00\00\89\06\00\00\02\00\00\00I\10\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00I\18\00\00\02\00\00\00I\10\00\00\02\00\00\00\19\00\00\00\02\00\00\00\89\00\00\00\02\00\00\00)\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\18\00\00\02\00\00\00\19\02\00\00\02\00\00\00)\00\00\00\02\00\00\00\89\02\00\00\02\00\00\00I\10\00\00\02\00\00\00I\10\00\00\02\00\00\00I\10\00\00\02") + (data (i32.const 7248) "\1a\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92\04\00\00\02\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\002\00\00\00\02\00\00\00\92\00\00\00\02\00\00\00\92\0c\00\00\02\00\00\00\12\0d\00\00\02\00\00\00\92 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\920\00\00\02\00\00\00\92 \00\00\02\00\00\002\00\00\00\02\00\00\00\12\01\00\00\02\00\00\00R\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\920\00\00\02\00\00\002\04\00\00\02\00\00\00R\00\00\00\02\00\00\00\12\05\00\00\02\00\00\00\92 \00\00\02\00\00\00\92 \00\00\02\00\00\00\92 \00\00\02") (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|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/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -1620,7 +1620,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 01570d8d..880d46f5 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -207,7 +207,7 @@ (data (i32.const 7624) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") (data (i32.const 7648) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") (data (i32.const 7672) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 7696) "\1a\00\00\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\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00\19\00\00\00\02\00\00\00\19\00\00\00\02\00\00\00I\00\00\00\02\00\00\00I\06\00\00\02\00\00\00\89\06\00\00\02\00\00\00I\10\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\10\00\00\02\00\00\00I\18\00\00\02\00\00\00I\10\00\00\02\00\00\00\19\00\00\00\02\00\00\00\89\00\00\00\02\00\00\00)\02\00\00\02\00\00\00\08\00\00\00\00\00\00\00I\18\00\00\02\00\00\00\19\02\00\00\02\00\00\00)\00\00\00\02\00\00\00\89\02\00\00\02\00\00\00I\10\00\00\02\00\00\00I\10\00\00\02\00\00\00I\10\00\00\02\00\00\00") + (data (i32.const 7696) "\1a\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92\04\00\00\02\00\00\00\10\00\00\00\00\00\00\001\00\00\00\02\00\00\002\00\00\00\02\00\00\00\92\00\00\00\02\00\00\00\92\0c\00\00\02\00\00\00\12\0d\00\00\02\00\00\00\92 \00\00\02\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\920\00\00\02\00\00\00\92 \00\00\02\00\00\002\00\00\00\02\00\00\00\12\01\00\00\02\00\00\00R\04\00\00\02\00\00\00\10\00\00\00\00\00\00\00\920\00\00\02\00\00\002\04\00\00\02\00\00\00R\00\00\00\02\00\00\00\12\05\00\00\02\00\00\00\92 \00\00\02\00\00\00\92 \00\00\02\00\00\00\92 \00\00\02\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/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3257,7 +3257,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 1e6198c8..cfb8017b 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -35,7 +35,7 @@ (data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s") - (data (i32.const 400) "\0d\00\00\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\"\04\00\00\00\00\00L\"\00\00\00\00\00\00LB\04\00\00\00\00\00LB\00\00\00\00\00\00L\82\04\00\00\00\00\00L\82\00\00\00\00\00\00L\02\05\00\00\00\00\00L\02\01\00\00\00\00\00L\82\0c\00\00\00\00\00L\02\0d") + (data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\98D\08\00\00\00\00\00\98D\00\00\00\00\00\00\98\84\08\00\00\00\00\00\98\84\00\00\00\00\00\00\98\04\t\00\00\00\00\00\98\04\01\00\00\00\00\00\98\04\n\00\00\00\00\00\98\04\02\00\00\00\00\00\98\04\19\00\00\00\00\00\98\04\1a") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) (global $~lib/rt/pure/END (mut i32) (i32.const 0)) @@ -1655,7 +1655,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index 5c2b4222..577bc8b7 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -31,7 +31,7 @@ (data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") (data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00m\00a\00p\00.\00t\00s\00") - (data (i32.const 400) "\0d\00\00\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\"\04\00\00\00\00\00L\"\00\00\00\00\00\00LB\04\00\00\00\00\00LB\00\00\00\00\00\00L\82\04\00\00\00\00\00L\82\00\00\00\00\00\00L\02\05\00\00\00\00\00L\02\01\00\00\00\00\00L\82\0c\00\00\00\00\00L\02\0d\00\00\00\00\00") + (data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\98D\08\00\00\00\00\00\98D\00\00\00\00\00\00\98\84\08\00\00\00\00\00\98\84\00\00\00\00\00\00\98\04\t\00\00\00\00\00\98\04\01\00\00\00\00\00\98\04\n\00\00\00\00\00\98\04\02\00\00\00\00\00\98\04\19\00\00\00\00\00\98\04\1a\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3343,7 +3343,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index d364192a..a758547c 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -32,7 +32,7 @@ (data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") (data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") (data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s") - (data (i32.const 400) "\0d\00\00\00\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\02\00\00\00\00\00\00\1a\00\00\00\00\00\00\00*\02\00\00\00\00\00\00*\00\00\00\00\00\00\00J\02\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\02\00\00\00\00\00\00\8a\00\00\00\00\00\00\00J\06\00\00\00\00\00\00\8a\06") + (data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\004\04\00\00\00\00\00\004\00\00\00\00\00\00\00T\04\00\00\00\00\00\00T\00\00\00\00\00\00\00\94\04\00\00\00\00\00\00\94\00\00\00\00\00\00\00\14\05\00\00\00\00\00\00\14\01\00\00\00\00\00\00\94\0c\00\00\00\00\00\00\14\0d") (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/pure/CUR (mut i32) (i32.const 0)) (global $~lib/rt/pure/END (mut i32) (i32.const 0)) @@ -1652,7 +1652,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index a6ab8704..5d88a2ea 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -31,7 +31,7 @@ (data (i32.const 264) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00") (data (i32.const 320) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00") (data (i32.const 360) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00s\00t\00d\00/\00s\00e\00t\00.\00t\00s\00") - (data (i32.const 400) "\0d\00\00\00\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\02\00\00\00\00\00\00\1a\00\00\00\00\00\00\00*\02\00\00\00\00\00\00*\00\00\00\00\00\00\00J\02\00\00\00\00\00\00J\00\00\00\00\00\00\00\8a\02\00\00\00\00\00\00\8a\00\00\00\00\00\00\00J\06\00\00\00\00\00\00\8a\06\00\00\00\00\00\00") + (data (i32.const 400) "\0d\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\004\04\00\00\00\00\00\004\00\00\00\00\00\00\00T\04\00\00\00\00\00\00T\00\00\00\00\00\00\00\94\04\00\00\00\00\00\00\94\00\00\00\00\00\00\00\14\05\00\00\00\00\00\00\14\01\00\00\00\00\00\00\94\0c\00\00\00\00\00\00\14\0d\00\00\00\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -3343,7 +3343,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index c8b5eb70..3f8992df 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -175,7 +175,7 @@ (data (i32.const 6392) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008") (data (i32.const 6424) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004") (data (i32.const 6456) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009") - (data (i32.const 6496) "\08\00\00\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\10\00\00\02\00\00\00I\02\00\00\02\00\00\00\89\00\00\00\02\00\00\00)\02\00\00\02\00\00\00I\00\00\00\02") + (data (i32.const 6496) "\08\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\92\04\00\00\02\00\00\00\12\01\00\00\02\00\00\00R\04\00\00\02\00\00\00\92\00\00\00\02") (global $std/string/str (mut i32) (i32.const 24)) (global $std/string/nullStr i32 (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -1580,7 +1580,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 80f25e95..d02676f0 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -180,7 +180,7 @@ (data (i32.const 6840) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008\00") (data (i32.const 6872) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004\00") (data (i32.const 6904) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009\00") - (data (i32.const 6944) "\08\00\00\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\10\00\00\02\00\00\00I\02\00\00\02\00\00\00I\00\00\00\02\00\00\00\89\00\00\00\02\00\00\00)\02\00\00\02\00\00\00") + (data (i32.const 6944) "\08\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\92 \00\00\02\00\00\00\92\04\00\00\02\00\00\00\92\00\00\00\02\00\00\00\12\01\00\00\02\00\00\00R\04\00\00\02\00\00\00") (table $0 1 funcref) (elem (i32.const 0) $null) (global $std/string/str (mut i32) (i32.const 24)) @@ -3247,7 +3247,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 37b16c24..9d01b988 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -74,7 +74,7 @@ (data (i32.const 1464) "\10\00\00\00\01\00\00\00\0f\00\00\00\10\00\00\00\90\05\00\00\90\05\00\00$\00\00\00\t") (data (i32.const 1496) "B\00\00\00\01\00\00\00\01\00\00\00B\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") (data (i32.const 1584) "V\00\00\00\01\00\00\00\01\00\00\00V\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") - (data (i32.const 1688) "\10\00\00\00\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\02\00\00\02\00\00\00\19\00\00\00\02\00\00\00\19\00\00\00\02\00\00\00)\02\00\00\02\00\00\00)\00\00\00\02\00\00\00I\02\00\00\02\00\00\00I\00\00\00\02\00\00\00\89\02\00\00\02\00\00\00\89\00\00\00\02\00\00\00I\06\00\00\02\00\00\00\89\06\00\00\02\00\00\00\19\02\00\00\02\00\00\00I\02\00\00\02") + (data (i32.const 1688) "\10\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\04\00\00\02\00\00\001\00\00\00\02\00\00\001\00\00\00\02\00\00\00Q\04\00\00\02\00\00\00Q\00\00\00\02\00\00\00\91\04\00\00\02\00\00\00\91\00\00\00\02\00\00\00\11\05\00\00\02\00\00\00\11\01\00\00\02\00\00\00\91\0c\00\00\02\00\00\00\11\0d\00\00\02\00\00\002\04\00\00\02\00\00\00\92\04\00\00\02") (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/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/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -1469,7 +1469,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and if local.get $0 diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 2fb20fb2..ee22205d 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -76,7 +76,7 @@ (data (i32.const 1464) "\10\00\00\00\01\00\00\00\0f\00\00\00\10\00\00\00\90\05\00\00\90\05\00\00$\00\00\00\t\00\00\00") (data (i32.const 1496) "B\00\00\00\01\00\00\00\01\00\00\00B\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 1584) "V\00\00\00\01\00\00\00\01\00\00\00V\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 1688) "\10\00\00\00\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\02\00\00\02\00\00\00\19\00\00\00\02\00\00\00\19\00\00\00\02\00\00\00)\02\00\00\02\00\00\00)\00\00\00\02\00\00\00I\02\00\00\02\00\00\00I\00\00\00\02\00\00\00\89\02\00\00\02\00\00\00\89\00\00\00\02\00\00\00I\06\00\00\02\00\00\00\89\06\00\00\02\00\00\00\19\02\00\00\02\00\00\00I\02\00\00\02\00\00\00") + (data (i32.const 1688) "\10\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\04\00\00\02\00\00\001\00\00\00\02\00\00\001\00\00\00\02\00\00\00Q\04\00\00\02\00\00\00Q\00\00\00\02\00\00\00\91\04\00\00\02\00\00\00\91\00\00\00\02\00\00\00\11\05\00\00\02\00\00\00\11\01\00\00\02\00\00\00\91\0c\00\00\02\00\00\00\11\0d\00\00\02\00\00\002\04\00\00\02\00\00\00\92\04\00\00\02\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)) @@ -3119,7 +3119,7 @@ local.get $0 i32.load offset=8 call $~lib/rt/__typeinfo - i32.const 8 + i32.const 16 i32.and i32.eqz if