diff --git a/cli/asc.js b/cli/asc.js index cb2be498bc..77bd445bbd 100644 --- a/cli/asc.js +++ b/cli/asc.js @@ -247,6 +247,7 @@ exports.main = function main(argv, options, callback) { assemblyscript.setSourceMap(compilerOptions, args.sourceMap != null); assemblyscript.setNoUnsafe(compilerOptions, args.noUnsafe); assemblyscript.setPedantic(compilerOptions, args.pedantic); + assemblyscript.setLowMemoryLimit(compilerOptions, args.lowMemoryLimit >>> 0); // Add or override aliases if specified if (args.use) { diff --git a/cli/asc.json b/cli/asc.json index 81a5b015a7..e737ca117c 100644 --- a/cli/asc.json +++ b/cli/asc.json @@ -192,6 +192,12 @@ "type": "S", "alias": "u" }, + "lowMemoryLimit": { + "category": "Features", + "description": "Enforces very low (<64k) memory constraints.", + "default": 0, + "type": "i" + }, "memoryBase": { "category": "Linking", diff --git a/src/common.ts b/src/common.ts index d89b0076f4..b8594fead5 100644 --- a/src/common.ts +++ b/src/common.ts @@ -154,6 +154,7 @@ export namespace CommonNames { export const ASC_TABLE_BASE = "ASC_TABLE_BASE"; export const ASC_OPTIMIZE_LEVEL = "ASC_OPTIMIZE_LEVEL"; export const ASC_SHRINK_LEVEL = "ASC_SHRINK_LEVEL"; + export const ASC_LOW_MEMORY_LIMIT = "ASC_LOW_MEMORY_LIMIT"; export const ASC_WASI = "ASC_WASI"; export const ASC_FEATURE_SIGN_EXTENSION = "ASC_FEATURE_SIGN_EXTENSION"; export const ASC_FEATURE_MUTABLE_GLOBALS = "ASC_FEATURE_MUTABLE_GLOBALS"; diff --git a/src/compiler.ts b/src/compiler.ts index e864617d94..ea4ecb7cd3 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -219,6 +219,8 @@ export class Options { noUnsafe: bool = false; /** If true, enables pedantic diagnostics. */ pedantic: bool = false; + /** Indicates a very low (<64k) memory limit. */ + lowMemoryLimit: i32 = 0; /** Hinted optimize level. Not applied by the compiler itself. */ optimizeLevelHint: i32 = 0; @@ -361,7 +363,7 @@ export class Compiler extends DiagnosticEmitter { this.memoryOffset = i64_new(options.memoryBase); module.setLowMemoryUnused(false); } else { - if (options.optimizeLevelHint >= 2) { + if (options.optimizeLevelHint >= 2 && !options.lowMemoryLimit) { this.memoryOffset = i64_new(1024); module.setLowMemoryUnused(true); } else { @@ -502,6 +504,16 @@ export class Compiler extends DiagnosticEmitter { // update the heap base pointer var memoryOffset = this.memoryOffset; memoryOffset = i64_align(memoryOffset, options.usizeType.byteSize); + var lowMemoryLimit32 = this.options.lowMemoryLimit; + if (lowMemoryLimit32) { + let lowMemoryLimit = i64_new(lowMemoryLimit32 & ~15); + if (i64_gt(memoryOffset, lowMemoryLimit)) { + this.error( + DiagnosticCode.Low_memory_limit_exceeded_by_static_data_0_1, + null, i64_to_string(memoryOffset), i64_to_string(lowMemoryLimit) + ); + } + } this.memoryOffset = memoryOffset; module.removeGlobal(BuiltinNames.heap_base); if (this.runtimeFeatures & RuntimeFeatures.HEAP) { @@ -526,7 +538,7 @@ export class Compiler extends DiagnosticEmitter { var isSharedMemory = options.hasFeature(Feature.THREADS) && options.sharedMemory > 0; module.setMemory( this.options.memoryBase /* is specified */ || this.memorySegments.length - ? i64_low(i64_shr_u(i64_align(memoryOffset, 0x10000), i64_new(16, 0))) + ? i64_low(i64_shr_u(i64_align(memoryOffset, 0x10000), i64_new(16))) : 0, isSharedMemory ? options.sharedMemory : Module.UNLIMITED_MEMORY, this.memorySegments, diff --git a/src/diagnosticMessages.generated.ts b/src/diagnosticMessages.generated.ts index d674d316c6..45988f1d65 100644 --- a/src/diagnosticMessages.generated.ts +++ b/src/diagnosticMessages.generated.ts @@ -12,6 +12,7 @@ export enum DiagnosticCode { User_defined_0 = 102, Feature_0_is_not_enabled = 103, Function_0_is_possibly_called_virtually_which_is_not_yet_supported = 104, + Low_memory_limit_exceeded_by_static_data_0_1 = 105, Conversion_from_type_0_to_1_requires_an_explicit_cast = 200, Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit = 201, Type_0_cannot_be_changed_to_type_1 = 202, @@ -165,6 +166,7 @@ export function diagnosticCodeToString(code: DiagnosticCode): string { case 102: return "User-defined: {0}"; case 103: return "Feature '{0}' is not enabled."; case 104: return "Function '{0}' is possibly called virtually, which is not yet supported."; + case 105: return "Low memory limit exceeded by static data: {0} > {1}"; case 200: return "Conversion from type '{0}' to '{1}' requires an explicit cast."; case 201: return "Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit."; case 202: return "Type '{0}' cannot be changed to type '{1}'."; diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index 049e89ceb4..94ef96a447 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -4,6 +4,7 @@ "User-defined: {0}": 102, "Feature '{0}' is not enabled.": 103, "Function '{0}' is possibly called virtually, which is not yet supported.": 104, + "Low memory limit exceeded by static data: {0} > {1}": 105, "Conversion from type '{0}' to '{1}' requires an explicit cast.": 200, "Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.": 201, diff --git a/src/glue/js/i64.d.ts b/src/glue/js/i64.d.ts index 631d2b8014..47f7818b2e 100644 --- a/src/glue/js/i64.d.ts +++ b/src/glue/js/i64.d.ts @@ -29,6 +29,7 @@ declare function i64_not(value: i64): i64; declare function i64_eq(left: i64, right: i64): bool; declare function i64_ne(left: i64, right: i64): bool; +declare function i64_gt(left: i64, right: i64): bool; declare function i64_align(value: i64, alignment: i32): i64; diff --git a/src/glue/js/i64.js b/src/glue/js/i64.js index 123a8c1022..1aafab9730 100644 --- a/src/glue/js/i64.js +++ b/src/glue/js/i64.js @@ -85,6 +85,10 @@ global.i64_ne = function(left, right) { return left.ne(right); }; +global.i64_gt = function(left, right) { + return left.gt(right); +}; + global.i64_align = function(value, alignment) { assert(alignment && (alignment & (alignment - 1)) == 0); var mask = Long.fromInt(alignment - 1); diff --git a/src/glue/wasm/i64.ts b/src/glue/wasm/i64.ts index a209e77c6c..59087872fd 100644 --- a/src/glue/wasm/i64.ts +++ b/src/glue/wasm/i64.ts @@ -125,6 +125,12 @@ function i64_ne(left: i64, right: i64): bool { return left != right; } +// @ts-ignore: decorator +@global +function i64_gt(left: i64, right: i64): bool { + return left > right; +} + // @ts-ignore: decorator @global function i64_align(value: i64, alignment: i64): i64 { diff --git a/src/index.ts b/src/index.ts index 98ff0c1d58..f28bf24f9f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -109,6 +109,11 @@ export function setNoUnsafe(options: Options, noUnsafe: bool): void { options.noUnsafe = noUnsafe; } +/** Sets the `lowMemoryLimit` option. */ +export function setLowMemoryLimit(options: Options, lowMemoryLimit: i32): void { + options.lowMemoryLimit = lowMemoryLimit; +} + /** Sign extension operations. */ export const FEATURE_SIGN_EXTENSION = Feature.SIGN_EXTENSION; /** Mutable global imports and exports. */ diff --git a/src/program.ts b/src/program.ts index 65f24ac79f..98e249deb4 100644 --- a/src/program.ts +++ b/src/program.ts @@ -741,6 +741,8 @@ export class Program extends DiagnosticEmitter { i64_new(options.optimizeLevelHint, 0)); this.registerConstantInteger(CommonNames.ASC_SHRINK_LEVEL, Type.i32, i64_new(options.shrinkLevelHint, 0)); + this.registerConstantInteger(CommonNames.ASC_LOW_MEMORY_LIMIT, Type.i32, + i64_new(options.lowMemoryLimit, 0)); // register feature hints this.registerConstantInteger(CommonNames.ASC_FEATURE_SIGN_EXTENSION, Type.bool, diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index cf15fffb72..aca4bce47d 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -52,6 +52,8 @@ declare const ASC_TABLE_BASE: i32; declare const ASC_OPTIMIZE_LEVEL: i32; /** Provided shrinkLevel option. */ declare const ASC_SHRINK_LEVEL: i32; +/** Provided lowMemoryLimit option. */ +declare const ASC_LOW_MEMORY_LIMIT: i32; /** Whether the sign extension feature is enabled. */ declare const ASC_FEATURE_SIGN_EXTENSION: bool; /** Whether the mutable globals feature is enabled. */ diff --git a/std/assembly/rt/tlsf.ts b/std/assembly/rt/tlsf.ts index 486e860de7..2a71356ff3 100644 --- a/std/assembly/rt/tlsf.ts +++ b/std/assembly/rt/tlsf.ts @@ -433,6 +433,10 @@ function addMemory(root: Root, start: usize, end: usize): bool { /** Grows memory to fit at least another block of the specified size. */ function growMemory(root: Root, size: usize): void { + if (ASC_LOW_MEMORY_LIMIT) { + unreachable(); + return; + } // Here, both rounding performed in searchBlock ... const halfMaxSize = BLOCK_MAXSIZE >> 1; if (size < halfMaxSize) { // don't round last fl @@ -462,7 +466,7 @@ function prepareSize(size: usize): usize { export function maybeInitialize(): Root { var root = ROOT; if (!root) { - const rootOffset = (__heap_base + AL_MASK) & ~AL_MASK; + let rootOffset = (__heap_base + AL_MASK) & ~AL_MASK; let pagesBefore = memory.size(); let pagesNeeded = ((((rootOffset + ROOT_SIZE) + 0xffff) & ~0xffff) >>> 16); if (pagesNeeded > pagesBefore && memory.grow(pagesNeeded - pagesBefore) < 0) unreachable(); @@ -475,7 +479,14 @@ export function maybeInitialize(): Root { SETHEAD(root, fl, sl, null); } } - addMemory(root, (rootOffset + ROOT_SIZE + AL_MASK) & ~AL_MASK, memory.size() << 16); + let memStart = (rootOffset + ROOT_SIZE + AL_MASK) & ~AL_MASK; + if (ASC_LOW_MEMORY_LIMIT) { + const memEnd = ASC_LOW_MEMORY_LIMIT & ~AL_MASK; + if (memStart <= memEnd) addMemory(root, memStart, memEnd); + else unreachable(); // low memory limit already exceeded + } else { + addMemory(root, memStart, memory.size() << 16); + } ROOT = root; } return root; diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 712fb443e7..e6cea15205 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -813,7 +813,7 @@ if i32.const 0 i32.const 1072 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -883,7 +883,7 @@ if i32.const 0 i32.const 1072 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -899,7 +899,7 @@ if i32.const 0 i32.const 1072 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/do.untouched.wat b/tests/compiler/do.untouched.wat index 2a12469761..2d067dd172 100644 --- a/tests/compiler/do.untouched.wat +++ b/tests/compiler/do.untouched.wat @@ -21,6 +21,7 @@ (table $0 1 funcref) (global $do/ran (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) @@ -1164,7 +1165,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -1273,7 +1276,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -1283,6 +1285,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -1302,7 +1307,7 @@ if i32.const 112 i32.const 64 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1693,7 +1698,7 @@ if i32.const 0 i32.const 64 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1734,7 +1739,7 @@ if i32.const 0 i32.const 64 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1753,7 +1758,7 @@ if i32.const 0 i32.const 64 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1770,7 +1775,7 @@ if i32.const 0 i32.const 64 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 717e936a8d..2c2a75aa88 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -679,7 +679,7 @@ if i32.const 1184 i32.const 1136 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -908,7 +908,7 @@ if i32.const 0 i32.const 1136 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1000,7 +1000,7 @@ if i32.const 0 i32.const 1136 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1016,7 +1016,7 @@ if i32.const 0 i32.const 1136 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -1131,7 +1131,7 @@ if i32.const 0 i32.const 1136 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/extends-baseaggregate.untouched.wat b/tests/compiler/extends-baseaggregate.untouched.wat index 15488bc082..49a196e372 100644 --- a/tests/compiler/extends-baseaggregate.untouched.wat +++ b/tests/compiler/extends-baseaggregate.untouched.wat @@ -26,6 +26,7 @@ (global $extends-baseaggregate/poolB i32 (i32.const 48)) (global $extends-baseaggregate/poolA i32 (i32.const 96)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -765,7 +766,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -874,7 +877,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -884,6 +886,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -903,7 +908,7 @@ if i32.const 176 i32.const 128 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1294,7 +1299,7 @@ if i32.const 0 i32.const 128 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1335,7 +1340,7 @@ if i32.const 0 i32.const 128 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1354,7 +1359,7 @@ if i32.const 0 i32.const 128 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1371,7 +1376,7 @@ if i32.const 0 i32.const 128 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -1532,7 +1537,7 @@ if i32.const 0 i32.const 128 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 1f81be030c..22eec7c1df 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -810,7 +810,7 @@ if i32.const 0 i32.const 1072 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -880,7 +880,7 @@ if i32.const 0 i32.const 1072 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -896,7 +896,7 @@ if i32.const 0 i32.const 1072 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/for.untouched.wat b/tests/compiler/for.untouched.wat index 343f64b7cb..7357637e6a 100644 --- a/tests/compiler/for.untouched.wat +++ b/tests/compiler/for.untouched.wat @@ -21,6 +21,7 @@ (table $0 1 funcref) (global $for/ran (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) @@ -1179,7 +1180,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -1288,7 +1291,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -1298,6 +1300,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -1317,7 +1322,7 @@ if i32.const 112 i32.const 64 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1708,7 +1713,7 @@ if i32.const 0 i32.const 64 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1749,7 +1754,7 @@ if i32.const 0 i32.const 64 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1768,7 +1773,7 @@ if i32.const 0 i32.const 64 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1785,7 +1790,7 @@ if i32.const 0 i32.const 64 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 6489321ed1..e542cbed46 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -891,7 +891,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -902,7 +902,7 @@ if i32.const 1088 i32.const 1040 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1002,7 +1002,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1018,7 +1018,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/implicit-getter-setter.untouched.wat b/tests/compiler/implicit-getter-setter.untouched.wat index 973f790d9f..c8ae35d694 100644 --- a/tests/compiler/implicit-getter-setter.untouched.wat +++ b/tests/compiler/implicit-getter-setter.untouched.wat @@ -20,6 +20,7 @@ (data (i32.const 176) "\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\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/rt/__rtti_base i32 (i32.const 176)) @@ -769,7 +770,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -878,7 +881,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -888,6 +890,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -907,7 +912,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1298,7 +1303,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1339,7 +1344,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1358,7 +1363,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1375,7 +1380,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index e3bca70a6f..6a3c08cd17 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -729,7 +729,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -799,7 +799,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -815,7 +815,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/issues/1095.untouched.wat b/tests/compiler/issues/1095.untouched.wat index e7da477318..eb4fa3569d 100644 --- a/tests/compiler/issues/1095.untouched.wat +++ b/tests/compiler/issues/1095.untouched.wat @@ -21,6 +21,7 @@ (data (i32.const 208) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\001\000\009\005\00.\00t\00s\00") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/heap/__heap_base i32 (i32.const 252)) @@ -755,7 +756,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -864,7 +867,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -874,6 +876,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -893,7 +898,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1284,7 +1289,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1325,7 +1330,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1344,7 +1349,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1361,7 +1366,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 3c69a33f8d..e47b44c8c0 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -730,7 +730,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -800,7 +800,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -816,7 +816,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/managed-cast.untouched.wat b/tests/compiler/managed-cast.untouched.wat index e11cbbe3f0..ae656b50ac 100644 --- a/tests/compiler/managed-cast.untouched.wat +++ b/tests/compiler/managed-cast.untouched.wat @@ -21,6 +21,7 @@ (data (i32.const 224) "\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\10\00\00\00\04\00\00\00\10\00\00\00\00\00\00\00") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) @@ -757,7 +758,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -866,7 +869,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -876,6 +878,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -895,7 +900,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1286,7 +1291,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1327,7 +1332,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1346,7 +1351,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1363,7 +1368,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/local-init.optimized.wat b/tests/compiler/rc/local-init.optimized.wat index 254c794d5f..6e2b6a29a9 100644 --- a/tests/compiler/rc/local-init.optimized.wat +++ b/tests/compiler/rc/local-init.optimized.wat @@ -728,7 +728,7 @@ if i32.const 0 i32.const 1056 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -798,7 +798,7 @@ if i32.const 0 i32.const 1056 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -814,7 +814,7 @@ if i32.const 0 i32.const 1056 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/local-init.untouched.wat b/tests/compiler/rc/local-init.untouched.wat index e3317e073c..86dd3812b9 100644 --- a/tests/compiler/rc/local-init.untouched.wat +++ b/tests/compiler/rc/local-init.untouched.wat @@ -20,6 +20,7 @@ (data (i32.const 144) "\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") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/heap/__heap_base i32 (i32.const 192)) @@ -768,7 +769,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -877,7 +880,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -887,6 +889,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -906,7 +911,7 @@ if i32.const 96 i32.const 48 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1297,7 +1302,7 @@ if i32.const 0 i32.const 48 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1338,7 +1343,7 @@ if i32.const 0 i32.const 48 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1357,7 +1362,7 @@ if i32.const 0 i32.const 48 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1374,7 +1379,7 @@ if i32.const 0 i32.const 48 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/logical-and-mismatch.optimized.wat b/tests/compiler/rc/logical-and-mismatch.optimized.wat index b5f07a600c..0bfda5896a 100644 --- a/tests/compiler/rc/logical-and-mismatch.optimized.wat +++ b/tests/compiler/rc/logical-and-mismatch.optimized.wat @@ -728,7 +728,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -798,7 +798,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -814,7 +814,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/logical-and-mismatch.untouched.wat b/tests/compiler/rc/logical-and-mismatch.untouched.wat index fd373fc2bf..4e82f39702 100644 --- a/tests/compiler/rc/logical-and-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-and-mismatch.untouched.wat @@ -19,6 +19,7 @@ (data (i32.const 128) "\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") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $rc/logical-and-mismatch/gloRef (mut i32) (i32.const 0)) @@ -754,7 +755,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -863,7 +866,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -873,6 +875,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -892,7 +897,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1283,7 +1288,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1324,7 +1329,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1343,7 +1348,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1360,7 +1365,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/logical-or-mismatch.optimized.wat b/tests/compiler/rc/logical-or-mismatch.optimized.wat index 68473e8fba..6430b3ace9 100644 --- a/tests/compiler/rc/logical-or-mismatch.optimized.wat +++ b/tests/compiler/rc/logical-or-mismatch.optimized.wat @@ -728,7 +728,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -798,7 +798,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -814,7 +814,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/logical-or-mismatch.untouched.wat b/tests/compiler/rc/logical-or-mismatch.untouched.wat index 848645e60a..6d1cbe845c 100644 --- a/tests/compiler/rc/logical-or-mismatch.untouched.wat +++ b/tests/compiler/rc/logical-or-mismatch.untouched.wat @@ -19,6 +19,7 @@ (data (i32.const 128) "\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") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $rc/logical-or-mismatch/gloRef (mut i32) (i32.const 0)) @@ -754,7 +755,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -863,7 +866,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -873,6 +875,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -892,7 +897,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1283,7 +1288,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1324,7 +1329,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1343,7 +1348,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1360,7 +1365,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/optimize.optimized.wat b/tests/compiler/rc/optimize.optimized.wat index 3ebba0deca..4e7e01a0da 100644 --- a/tests/compiler/rc/optimize.optimized.wat +++ b/tests/compiler/rc/optimize.optimized.wat @@ -818,7 +818,7 @@ if i32.const 0 i32.const 1088 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -888,7 +888,7 @@ if i32.const 0 i32.const 1088 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -904,7 +904,7 @@ if i32.const 0 i32.const 1088 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/optimize.untouched.wat b/tests/compiler/rc/optimize.untouched.wat index b2b3451198..fa51324f9f 100644 --- a/tests/compiler/rc/optimize.untouched.wat +++ b/tests/compiler/rc/optimize.untouched.wat @@ -20,6 +20,7 @@ (data (i32.const 176) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a\00") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/heap/__heap_base i32 (i32.const 196)) @@ -849,7 +850,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -958,7 +961,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -968,6 +970,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -987,7 +992,7 @@ if i32.const 128 i32.const 80 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1378,7 +1383,7 @@ if i32.const 0 i32.const 80 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1419,7 +1424,7 @@ if i32.const 0 i32.const 80 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1438,7 +1443,7 @@ if i32.const 0 i32.const 80 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1455,7 +1460,7 @@ if i32.const 0 i32.const 80 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/rereturn.optimized.wat b/tests/compiler/rc/rereturn.optimized.wat index 310f815af9..e18eddf7c1 100644 --- a/tests/compiler/rc/rereturn.optimized.wat +++ b/tests/compiler/rc/rereturn.optimized.wat @@ -877,7 +877,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -888,7 +888,7 @@ if i32.const 1088 i32.const 1040 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -988,7 +988,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1004,7 +1004,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/rereturn.untouched.wat b/tests/compiler/rc/rereturn.untouched.wat index 51e073a9af..d9a93ea405 100644 --- a/tests/compiler/rc/rereturn.untouched.wat +++ b/tests/compiler/rc/rereturn.untouched.wat @@ -16,6 +16,7 @@ (data (i32.const 176) "\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) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/rt/__rtti_base i32 (i32.const 176)) @@ -756,7 +757,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -865,7 +868,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -875,6 +877,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -894,7 +899,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1285,7 +1290,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1326,7 +1331,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1345,7 +1350,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1362,7 +1367,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/ternary-mismatch.optimized.wat b/tests/compiler/rc/ternary-mismatch.optimized.wat index 75b8b35ec8..abe556115a 100644 --- a/tests/compiler/rc/ternary-mismatch.optimized.wat +++ b/tests/compiler/rc/ternary-mismatch.optimized.wat @@ -730,7 +730,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -800,7 +800,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -816,7 +816,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/rc/ternary-mismatch.untouched.wat b/tests/compiler/rc/ternary-mismatch.untouched.wat index 9171afcb76..c7338717ec 100644 --- a/tests/compiler/rc/ternary-mismatch.untouched.wat +++ b/tests/compiler/rc/ternary-mismatch.untouched.wat @@ -19,6 +19,7 @@ (data (i32.const 128) "\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") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $rc/ternary-mismatch/gloRef (mut i32) (i32.const 0)) @@ -756,7 +757,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -865,7 +868,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -875,6 +877,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -894,7 +899,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1285,7 +1290,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1326,7 +1331,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1345,7 +1350,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1362,7 +1367,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 91d0c77ae7..0b0c2d7ff6 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -899,7 +899,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -910,7 +910,7 @@ if i32.const 1088 i32.const 1040 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1010,7 +1010,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1026,7 +1026,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -2407,7 +2407,7 @@ if i32.const 0 i32.const 1040 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-ternary.untouched.wat b/tests/compiler/resolve-ternary.untouched.wat index 509df1c74d..708bfe8f3d 100644 --- a/tests/compiler/resolve-ternary.untouched.wat +++ b/tests/compiler/resolve-ternary.untouched.wat @@ -35,6 +35,7 @@ (table $0 5 funcref) (elem (i32.const 1) $start:resolve-ternary~anonymous|0 $start:resolve-ternary~anonymous|1 $resolve-ternary/g1 $resolve-ternary/g2) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $resolve-ternary/b (mut i32) (i32.const 1)) @@ -787,7 +788,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -896,7 +899,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -906,6 +908,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -925,7 +930,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1316,7 +1321,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1357,7 +1362,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1376,7 +1381,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1393,7 +1398,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -4587,7 +4592,7 @@ if i32.const 0 i32.const 32 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/retain-release-sanity.optimized.wat b/tests/compiler/retain-release-sanity.optimized.wat index 600843a035..0d49a92868 100644 --- a/tests/compiler/retain-release-sanity.optimized.wat +++ b/tests/compiler/retain-release-sanity.optimized.wat @@ -685,7 +685,7 @@ if i32.const 1184 i32.const 1136 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -914,7 +914,7 @@ if i32.const 0 i32.const 1136 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1006,7 +1006,7 @@ if i32.const 0 i32.const 1136 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1022,7 +1022,7 @@ if i32.const 0 i32.const 1136 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -1310,7 +1310,7 @@ if i32.const 0 i32.const 1136 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/retain-release-sanity.untouched.wat b/tests/compiler/retain-release-sanity.untouched.wat index 705f8a70dc..4b44109ba8 100644 --- a/tests/compiler/retain-release-sanity.untouched.wat +++ b/tests/compiler/retain-release-sanity.untouched.wat @@ -31,6 +31,7 @@ (data (i32.const 576) "\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\04\00\00\00\00\00\00\92 \00\00\00\00\00\00\92 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -770,7 +771,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -879,7 +882,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -889,6 +891,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -908,7 +913,7 @@ if i32.const 176 i32.const 128 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1299,7 +1304,7 @@ if i32.const 0 i32.const 128 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1340,7 +1345,7 @@ if i32.const 0 i32.const 128 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1359,7 +1364,7 @@ if i32.const 0 i32.const 128 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1376,7 +1381,7 @@ if i32.const 0 i32.const 128 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -1803,7 +1808,7 @@ if i32.const 0 i32.const 128 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/retain-return.optimized.wat b/tests/compiler/retain-return.optimized.wat index a2dd8dad6a..3f44d56867 100644 --- a/tests/compiler/retain-return.optimized.wat +++ b/tests/compiler/retain-return.optimized.wat @@ -727,7 +727,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -797,7 +797,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -813,7 +813,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/retain-return.untouched.wat b/tests/compiler/retain-return.untouched.wat index 08eddcc5bc..c6f3108342 100644 --- a/tests/compiler/retain-return.untouched.wat +++ b/tests/compiler/retain-return.untouched.wat @@ -16,6 +16,7 @@ (table $0 7 funcref) (elem (i32.const 1) $start:retain-return~anonymous|0 $start:retain-return~anonymous|1 $start:retain-return~anonymous|2 $start:retain-return~anonymous|3 $start:retain-return~anonymous|4 $start:retain-return~anonymous|5) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $retain-return/ref (mut i32) (i32.const 0)) @@ -760,7 +761,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -869,7 +872,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -879,6 +881,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -898,7 +903,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1289,7 +1294,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1330,7 +1335,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1349,7 +1354,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1366,7 +1371,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/runtime-full.optimized.wat b/tests/compiler/runtime-full.optimized.wat index 2a14133085..b28802b310 100644 --- a/tests/compiler/runtime-full.optimized.wat +++ b/tests/compiler/runtime-full.optimized.wat @@ -877,7 +877,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -888,7 +888,7 @@ if i32.const 1088 i32.const 1040 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -988,7 +988,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1004,7 +1004,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/runtime-full.untouched.wat b/tests/compiler/runtime-full.untouched.wat index 48d89739c4..bd5143cc56 100644 --- a/tests/compiler/runtime-full.untouched.wat +++ b/tests/compiler/runtime-full.untouched.wat @@ -16,6 +16,7 @@ (data (i32.const 176) "\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) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/rt/__rtti_base i32 (i32.const 176)) @@ -755,7 +756,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -864,7 +867,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -874,6 +876,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -893,7 +898,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1284,7 +1289,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1325,7 +1330,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1344,7 +1349,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1361,7 +1366,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index f9dc0e789f..a2e8a7c611 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -929,7 +929,7 @@ if i32.const 0 i32.const 1392 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -940,7 +940,7 @@ if i32.const 1440 i32.const 1392 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1040,7 +1040,7 @@ if i32.const 0 i32.const 1392 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1056,7 +1056,7 @@ if i32.const 0 i32.const 1392 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index 7142a8cc0c..1f0b48088c 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -33,6 +33,7 @@ (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 352)) (global $std/array-literal/i (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -838,7 +839,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -947,7 +950,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -957,6 +959,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -976,7 +981,7 @@ if i32.const 432 i32.const 384 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1367,7 +1372,7 @@ if i32.const 0 i32.const 384 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1408,7 +1413,7 @@ if i32.const 0 i32.const 384 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1427,7 +1432,7 @@ if i32.const 0 i32.const 384 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1444,7 +1449,7 @@ if i32.const 0 i32.const 384 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 301f0a4d84..b56c936ef8 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -885,7 +885,7 @@ if i32.const 1184 i32.const 1136 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1114,7 +1114,7 @@ if i32.const 0 i32.const 1136 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1205,7 +1205,7 @@ if i32.const 0 i32.const 1136 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1221,7 +1221,7 @@ if i32.const 0 i32.const 1136 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -2101,7 +2101,7 @@ if i32.const 0 i32.const 1136 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 50c367fc77..95a4fa15ba 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -215,6 +215,7 @@ (table $0 57 funcref) (elem (i32.const 1) $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)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -971,7 +972,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -1080,7 +1083,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -1090,6 +1092,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -1109,7 +1114,7 @@ if i32.const 176 i32.const 128 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1500,7 +1505,7 @@ if i32.const 0 i32.const 128 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1541,7 +1546,7 @@ if i32.const 0 i32.const 128 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1560,7 +1565,7 @@ if i32.const 0 i32.const 128 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1577,7 +1582,7 @@ if i32.const 0 i32.const 128 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -3920,7 +3925,7 @@ if i32.const 0 i32.const 128 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index bacb0da4cc..05f4836d10 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -882,7 +882,7 @@ if i32.const 0 i32.const 1152 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -893,7 +893,7 @@ if i32.const 1200 i32.const 1152 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -993,7 +993,7 @@ if i32.const 0 i32.const 1152 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1009,7 +1009,7 @@ if i32.const 0 i32.const 1152 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/arraybuffer.untouched.wat b/tests/compiler/std/arraybuffer.untouched.wat index 2b0c2fa1e7..ad67dd9ef8 100644 --- a/tests/compiler/std/arraybuffer.untouched.wat +++ b/tests/compiler/std/arraybuffer.untouched.wat @@ -25,6 +25,7 @@ (data (i32.const 384) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -762,7 +763,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -871,7 +874,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -881,6 +883,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -900,7 +905,7 @@ if i32.const 192 i32.const 144 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1291,7 +1296,7 @@ if i32.const 0 i32.const 144 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1332,7 +1337,7 @@ if i32.const 0 i32.const 144 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1351,7 +1356,7 @@ if i32.const 0 i32.const 144 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1368,7 +1373,7 @@ if i32.const 0 i32.const 144 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 5c319a708c..fe4f73ee46 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -890,7 +890,7 @@ if i32.const 0 i32.const 1152 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -901,7 +901,7 @@ if i32.const 1200 i32.const 1152 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1001,7 +1001,7 @@ if i32.const 0 i32.const 1152 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1017,7 +1017,7 @@ if i32.const 0 i32.const 1152 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index bcb7172b76..288130cb7a 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -33,6 +33,7 @@ (data (i32.const 464) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -770,7 +771,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -879,7 +882,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -889,6 +891,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -908,7 +913,7 @@ if i32.const 192 i32.const 144 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1299,7 +1304,7 @@ if i32.const 0 i32.const 144 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1340,7 +1345,7 @@ if i32.const 0 i32.const 144 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1359,7 +1364,7 @@ if i32.const 0 i32.const 144 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1376,7 +1381,7 @@ if i32.const 0 i32.const 144 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index bb5b59f854..41dfd56210 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -693,7 +693,7 @@ if i32.const 1088 i32.const 1040 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -922,7 +922,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1013,7 +1013,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1029,7 +1029,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -2009,7 +2009,7 @@ if i32.const 0 i32.const 1040 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/map.untouched.wat b/tests/compiler/std/map.untouched.wat index 51420ccb1c..95d7f48a74 100644 --- a/tests/compiler/std/map.untouched.wat +++ b/tests/compiler/std/map.untouched.wat @@ -43,6 +43,7 @@ (data (i32.const 496) "$\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") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -778,7 +779,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -887,7 +890,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -897,6 +899,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -916,7 +921,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1307,7 +1312,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1348,7 +1353,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1367,7 +1372,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1384,7 +1389,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -2286,7 +2291,7 @@ if i32.const 0 i32.const 32 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 4727e29d1d..a0714f5d92 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -690,7 +690,7 @@ if i32.const 1088 i32.const 1040 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -919,7 +919,7 @@ if i32.const 0 i32.const 1040 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1010,7 +1010,7 @@ if i32.const 0 i32.const 1040 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1026,7 +1026,7 @@ if i32.const 0 i32.const 1040 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -2000,7 +2000,7 @@ if i32.const 0 i32.const 1040 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/set.untouched.wat b/tests/compiler/std/set.untouched.wat index 7513c97c2b..6ed5a68083 100644 --- a/tests/compiler/std/set.untouched.wat +++ b/tests/compiler/std/set.untouched.wat @@ -38,6 +38,7 @@ (data (i32.const 384) "$\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") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -773,7 +774,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -882,7 +885,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -892,6 +894,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -911,7 +916,7 @@ if i32.const 80 i32.const 32 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1302,7 +1307,7 @@ if i32.const 0 i32.const 32 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1343,7 +1348,7 @@ if i32.const 0 i32.const 32 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1362,7 +1367,7 @@ if i32.const 0 i32.const 32 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1379,7 +1384,7 @@ if i32.const 0 i32.const 32 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -2234,7 +2239,7 @@ if i32.const 0 i32.const 32 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 497f614df8..29307d8a62 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -929,7 +929,7 @@ if i32.const 0 i32.const 1328 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -940,7 +940,7 @@ if i32.const 1376 i32.const 1328 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1040,7 +1040,7 @@ if i32.const 0 i32.const 1328 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1056,7 +1056,7 @@ if i32.const 0 i32.const 1328 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/staticarray.untouched.wat b/tests/compiler/std/staticarray.untouched.wat index 8316920411..b07f2bd833 100644 --- a/tests/compiler/std/staticarray.untouched.wat +++ b/tests/compiler/std/staticarray.untouched.wat @@ -27,6 +27,7 @@ (global $std/staticarray/arr1 i32 (i32.const 32)) (global $std/staticarray/arr2 i32 (i32.const 256)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -828,7 +829,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -937,7 +940,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -947,6 +949,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -966,7 +971,7 @@ if i32.const 368 i32.const 320 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1357,7 +1362,7 @@ if i32.const 0 i32.const 320 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1398,7 +1403,7 @@ if i32.const 0 i32.const 320 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1417,7 +1422,7 @@ if i32.const 0 i32.const 320 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1434,7 +1439,7 @@ if i32.const 0 i32.const 320 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index a687c14acd..1f6e658316 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -1005,7 +1005,7 @@ if i32.const 1152 i32.const 1104 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1234,7 +1234,7 @@ if i32.const 0 i32.const 1104 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1325,7 +1325,7 @@ if i32.const 0 i32.const 1104 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1341,7 +1341,7 @@ if i32.const 0 i32.const 1104 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -1851,7 +1851,7 @@ if i32.const 0 i32.const 1104 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string-casemapping.untouched.wat b/tests/compiler/std/string-casemapping.untouched.wat index f1c5db3563..e4578e0e3b 100644 --- a/tests/compiler/std/string-casemapping.untouched.wat +++ b/tests/compiler/std/string-casemapping.untouched.wat @@ -185,6 +185,7 @@ (data (i32.const 17584) "@\00\00\00\01\00\00\00\01\00\00\00@\00\00\00o\00r\00i\00g\00U\00p\00p\00e\00r\00C\00o\00d\00e\00 \00!\00=\00 \00e\00x\00p\00e\00c\00t\00U\00p\00p\00e\00r\00C\00o\00d\00e\00") (table $0 1 funcref) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/util/casemap/SPECIALS_UPPER i32 (i32.const 208)) @@ -987,7 +988,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -1096,7 +1099,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -1106,6 +1108,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -1125,7 +1130,7 @@ if i32.const 144 i32.const 96 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1516,7 +1521,7 @@ if i32.const 0 i32.const 96 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1557,7 +1562,7 @@ if i32.const 0 i32.const 96 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1576,7 +1581,7 @@ if i32.const 0 i32.const 96 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1593,7 +1598,7 @@ if i32.const 0 i32.const 96 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -1863,7 +1868,7 @@ if i32.const 0 i32.const 96 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 080cdaf136..b3ad6c29a8 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -746,7 +746,7 @@ if i32.const 1232 i32.const 1184 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -975,7 +975,7 @@ if i32.const 0 i32.const 1184 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1066,7 +1066,7 @@ if i32.const 0 i32.const 1184 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1082,7 +1082,7 @@ if i32.const 0 i32.const 1184 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -2672,7 +2672,7 @@ if i32.const 0 i32.const 1184 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string-encoding.untouched.wat b/tests/compiler/std/string-encoding.untouched.wat index d4dceff863..d5e7de2767 100644 --- a/tests/compiler/std/string-encoding.untouched.wat +++ b/tests/compiler/std/string-encoding.untouched.wat @@ -36,6 +36,7 @@ (table $0 1 funcref) (global $std/string-encoding/str (mut i32) (i32.const 32)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -868,7 +869,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -977,7 +980,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -987,6 +989,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -1006,7 +1011,7 @@ if i32.const 224 i32.const 176 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1397,7 +1402,7 @@ if i32.const 0 i32.const 176 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1438,7 +1443,7 @@ if i32.const 0 i32.const 176 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1457,7 +1462,7 @@ if i32.const 0 i32.const 176 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1474,7 +1479,7 @@ if i32.const 0 i32.const 176 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -4127,7 +4132,7 @@ if i32.const 0 i32.const 176 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 84c0e12a38..57ee9f6f9d 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1230,7 +1230,7 @@ if i32.const 1408 i32.const 1360 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1459,7 +1459,7 @@ if i32.const 0 i32.const 1360 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1550,7 +1550,7 @@ if i32.const 0 i32.const 1360 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1566,7 +1566,7 @@ if i32.const 0 i32.const 1360 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -4327,7 +4327,7 @@ if i32.const 0 i32.const 1360 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 83eea0b3f0..4a033250fd 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -377,6 +377,7 @@ (global $std/string/nullStr (mut i32) (i32.const 0)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~argumentsLength (mut i32) (i32.const 0)) @@ -1442,7 +1443,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -1551,7 +1554,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -1561,6 +1563,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -1580,7 +1585,7 @@ if i32.const 400 i32.const 352 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1971,7 +1976,7 @@ if i32.const 0 i32.const 352 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -2012,7 +2017,7 @@ if i32.const 0 i32.const 352 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -2031,7 +2036,7 @@ if i32.const 0 i32.const 352 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -2048,7 +2053,7 @@ if i32.const 0 i32.const 352 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -7122,7 +7127,7 @@ if i32.const 0 i32.const 352 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index c7fa19e31a..f37daccbfb 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -856,7 +856,7 @@ if i32.const 1200 i32.const 1152 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1085,7 +1085,7 @@ if i32.const 0 i32.const 1152 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1176,7 +1176,7 @@ if i32.const 0 i32.const 1152 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1192,7 +1192,7 @@ if i32.const 0 i32.const 1152 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -2447,7 +2447,7 @@ if i32.const 0 i32.const 1152 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 21cc407c73..a345aa3250 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -197,6 +197,7 @@ (global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT i32 (i32.const 4)) (global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT i32 (i32.const 8)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) @@ -953,7 +954,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -1062,7 +1065,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -1072,6 +1074,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -1091,7 +1096,7 @@ if i32.const 192 i32.const 144 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1482,7 +1487,7 @@ if i32.const 0 i32.const 144 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1523,7 +1528,7 @@ if i32.const 0 i32.const 144 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1542,7 +1547,7 @@ if i32.const 0 i32.const 144 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1559,7 +1564,7 @@ if i32.const 0 i32.const 144 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable @@ -3132,7 +3137,7 @@ if i32.const 0 i32.const 144 - i32.const 570 + i32.const 581 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index 0ecb35d3b3..6363f8f920 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -818,7 +818,7 @@ if i32.const 0 i32.const 1072 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -888,7 +888,7 @@ if i32.const 0 i32.const 1072 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -904,7 +904,7 @@ if i32.const 0 i32.const 1072 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/while.untouched.wat b/tests/compiler/while.untouched.wat index da51f635c6..5778107c90 100644 --- a/tests/compiler/while.untouched.wat +++ b/tests/compiler/while.untouched.wat @@ -21,6 +21,7 @@ (table $0 1 funcref) (global $while/ran (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/gc/gc.auto (mut i32) (i32.const 1)) (global $~started (mut i32) (i32.const 0)) @@ -1208,7 +1209,9 @@ global.get $~lib/heap/__heap_base i32.const 15 i32.add - i32.const -16 + i32.const 15 + i32.const -1 + i32.xor i32.and local.set $1 memory.size @@ -1317,7 +1320,6 @@ br $for-loop|0 end end - local.get $0 local.get $1 i32.const 1572 i32.add @@ -1327,6 +1329,9 @@ i32.const -1 i32.xor i32.and + local.set $5 + local.get $0 + local.get $5 memory.size i32.const 16 i32.shl @@ -1346,7 +1351,7 @@ if i32.const 112 i32.const 64 - i32.const 457 + i32.const 461 i32.const 29 call $~lib/builtins/abort unreachable @@ -1737,7 +1742,7 @@ if i32.const 0 i32.const 64 - i32.const 490 + i32.const 501 i32.const 13 call $~lib/builtins/abort unreachable @@ -1778,7 +1783,7 @@ if i32.const 0 i32.const 64 - i32.const 502 + i32.const 513 i32.const 19 call $~lib/builtins/abort unreachable @@ -1797,7 +1802,7 @@ if i32.const 0 i32.const 64 - i32.const 507 + i32.const 518 i32.const 17 call $~lib/builtins/abort unreachable @@ -1814,7 +1819,7 @@ if i32.const 0 i32.const 64 - i32.const 510 + i32.const 521 i32.const 13 call $~lib/builtins/abort unreachable